冒泡排序可以说是我们高中的时候就开始接触的排序方法了吧,这种排序的方法的思路比较简单,不过有一定的局限性————就是在对大量的数据进行排序时,这种方法会比较蹩脚。因此,人们才会不断的想方法去改进这种方法,后来的选择排序就是冒泡排序的改进版。

冒泡排序的基本思路就是相邻的两个数相比,如果前一个数比后一个数大(小)就交换,把大(小)的数放在后面。

这种方法在排序好之前,每次对比的起点都是在第一个元素,同时每次排序又会有N个元素,即会对比N-1次,因此总的对比次数就为N(N-1),因此这个排序的时间复杂度为O(N^2)

这是一种稳定的排序。(因为这个排序比较简单,就不画图啦)

代码实现如下:

 public static void bubbleSort(int[] nums) {
         if(nums == null || nums.length < 2) return;
         
        int length = nums.length;  
        int end = length - 1;  
        for(int j = 0; j < end; j++) {
            for(int i = 0; i < end; i++) {
                //如果前一个数比后一个数大,两数交换
                if(nums[i] > nums[i+1]) {
                    int temp = nums[i];
                    nums[i] = nums[i+1];
                    nums[i+1] = temp;
                }
            }
            //把最大的数放到end位置
            end--;
        }
    }

DrXin
14 声望0 粉丝

程序员