时间复杂度为 O(N^2)。虽然冒泡排序与插入排序的时间复杂度 应该避免使用冒泡排序,
重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
public class BubbleSort
{
public static void main(String[]
args) {
int[]
a;
int n=10;
//生产随机数组
a = new int[n];
Random rand = new Random();
for( int i=0;i<a. length;i++){
a[i] = rand.nextInt(n);
}
System. out.println(Arrays. toString(a));
long s
= System. nanoTime();
int[]
b= sort(a);
long dur
= System. nanoTime() - s;
System. out.println(Arrays. toString(b));
System. out.println(dur);
}
public static int[]
sort(int[] a){
for( int i=0;i<a. length;i++){
for( int j=i+1;j<a. length;j++){
if(a[i]
> a[j]){
int tmp
= a[j];
a[j] = a[i];
a[i] = tmp;
}
}
}
return a;
}
}