Java排序算法-冒泡排序

基本思想:

临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,

这样一趟过去后,最大或最小的数字被交换到了最后一位,

然后再从头开始进行两两比较交换,直到倒数第二位时结束,因此冒泡排序需要n-1趟

 复杂度:

当最好的情况,也就是要排序的序列本身就是有序的,需要进行(n-1)次比较,没有数据交换,时间复杂度为O(n).
当最坏的情况,即待排序的表是逆序的情况,此时需要比较次数为:1+2+3+…+(n-1)=n(n-1)/2 次,并作等数量级的记录移动,因此总的时间复杂度为这里写图片描述


代码实现:

public static void maoPaoSort(int[] array)
    {
        for(int i = 0 ;i < array.length-1;i++)
        {
            for(int j =0;j             {
                if(array[j] > array[j+1])
                {
                    swap(array, i, j);

                }
                
            }
            
        }

    }

你可能感兴趣的:(算法)