冒泡排序

/**
 * 冒泡排序
 */
@Service
public class BubbleSort implements Sort {

    @Override
    public String getName() {
        return "冒泡排序";
    }

    @Override
    public int[] sortArray(int[] nums) {
        int t;
        for (int i = 0; i < nums.length - 1; i++) {
            for (int j = 0; j < nums.length - 1 - i; j++) {
                if (nums[j] > nums[j + 1]) {
                    t = nums[j];
                    nums[j] = nums[j + 1];
                    nums[j + 1] = t;
                }
            }
        }
        return nums;
    }

}

逻辑解释:
1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、循环对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。循环结束后,最后一个数为当前最大的数,且排在最后一个位置n。
3、重复循环2的操作,每次循环的次数-1。即找出比上一次循环次之小的最大的数,排在上一次的数字之前。
最终效果就好像汽水中的气泡一样,底下是小的,漂浮到顶部的过程慢慢变大,故称为:冒泡排序。

快速记忆:
2层循环,索引变量i和j,边界length-1,length-1-i,交换j和j+1。


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍