经典排序算法--冒泡排序

冒泡排序原理:

  排序每一轮确定一个最小值或最大值,下一轮排序元素数量就可以减一,所以最坏情况只要排序数组长度减一次就可以将顺序确定下来。

实现过程

假设本次排序按从小到大的顺序排列。
  第一次排序前,用两个指针分别指向数组0号元素和1号元素,如果0号元素大于1号元素,两个元素交换位置,否顺序不变,然后指针各自向后移一位,所以只要初始指向1号元素的指针到达数组尾部,就说明两个指针已经遍历过数组的所有元素,此时即可停止本轮排序。经过第一轮排序后,可以确定出一个最大值,且这个值会排在数组的最后一个位置,然后进行下一轮排序,下一轮排序又可以确定出倒数第二大的元素,并且会排在数组倒数第二个位置,如此循环数组长度减1次,则数组的顺序就一定是从小到大排列的。
代码如下:由代码可以看出时间复杂度为O(n2

 public static int[] bobbleSort(int[] array) {
    
    
        int temp;
        for (int j = 0; j < array.length; j++) {
    
    

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

猜你喜欢

转载自blog.csdn.net/TreeCode/article/details/107953851
今日推荐