冒泡排序

冒泡排序算法就是相邻两两比较,每趟比较决定一个最值。

 

for(int i=0;i<arr.length-1;i++){
    for(int j=0;j<arr.length-1-i;j++){
        if(arr[j]>arr[j+1])
            {
                 int temp=a[j];
                 a[j]=a[j+1];
                 a[j+1]=temp;
             }
       }
}

外循环重复n-1次,内循环重复n-1,n-2,。。。,1次

 

若记录序列的初始状态为"正序",则冒泡排序过程只需进行一趟排序,在排序过程中只需进行n-1次比较,且不移动记录;反之,若记录序列的初始状态为"逆序",则需进行n(n-1)/2次比较和记录移动。因此冒泡排序总的时间复杂度为O(n*n)。

 

posted @ 2016-09-03 15:27  海的心  阅读(129)  评论(0)    收藏  举报