1799 - 基础排序I:冒泡排序
时间限制 : 1 秒
内存限制 : 128 MB
冒泡排序(Bubble Sort),是一种计算机领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。
由于冒泡排序简洁的特点,它通常被用来对于计算机程序设计入门的学生介绍算法的概念。
此题用作练习题,请用冒泡排序完成此题。
题目输入
第一行输入一个整数n(0<n<=100000),表示有n个待排序数据;
随后的n行每行输入一个整数。
题目输出
升序输出排序结果
输入/输出样例
输入格式
5 5 4 3 2 1
输出格式
1 2 3 4 5
C语言解答
#include<stdio.h> main() { int i,j,t,n,a[100000]; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=1;i<n;i++) for(j=0;j<n-1;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); }
C++解答
#include<iostream> using namespace std; int main(){ int a[100000],i,j; int n; cin>>n; for( i=0;i<n;i++) cin>>a[i]; for(i=0;i<n-1;i++) for(j=0;j<n-i-1;j++){ if(a[j]>a[j+1]){ int t=a[j+1]; a[j+1]=a[j]; a[j]=t; } } cout<<a[0]; for(i=1;i<n;i++) cout<<" "<<a[i]; cout<<endl; }
Java解答
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int arr[]=new int[n]; for(int i=0;i<n;i++) { arr[i]=sc.nextInt(); } bubbleSort(arr); for(int i=0;i<n-1;i++) { System.out.print(arr[i]+" "); } System.out.println(arr[n-1]); } public static void bubbleSort(int arr[])//冒泡排序 { for(int i=0;i<arr.length-1;i++) { for(int j=0;j<arr.length-i-1;j++) { if(arr[j]>arr[j+1]) { int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } }