数据结构之冒泡排序

  • 基本思想(假设有小到大排序)

       对于给定的n个记录,从第一个记录开始一次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较和换位后,n个记录中最大的将位于第n位;然后对前(n-1)个记录进行第二轮比较;重复该过程直到进行比较的记录只剩下一个为止。

 

  • 程序如下
public class Test{
    public static void bubbleSort(int[] a){
        for(int i=0;i<a.length-1;i++){
             for(int j=0;j<a.length-i-1;j++){
                 if(a[j]>a[j+1]){
                     int temp = a[j];
                     a[j] = a[j+1];
                     a[j+1] =temp;
                 }
             }
        }
    }
    public static void main(String[] args){
        int[] a = {7,6,4,8,9,3,2};
        bubbleSort(a);
        for(int i=0;i<a.length;i++){
            System.out.print(a[i]+" ");
        }
    }
}

        程序结果

 

  • 算法分析
  1. 最好时间:O(n)
  2. 平均时间:O(n2)
  3. 最坏时间:O(n2)
  4. 辅助存储:O(1)
  5. 稳定性:稳定性

posted on 2017-03-27 15:27  一个不会coding的girl  阅读(166)  评论(0编辑  收藏  举报

导航