冒泡排序 Bubble Sort

时间复杂度为  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;
      }
}


你可能感兴趣的:(冒泡排序,排序算法)