冒泡算法

冒泡排序是排序算法中比较简单的一种,它的排序逻辑就是,依次从0位N位进行排序,首先第一次排序获取到0下标的值,然后在根据这个值对数据元素内的全部值进行依次比对,如果达到条件就交换位置继续比对,直到遍历完元素内的全部值为止。

算法图解

  1. 第一次比较
  • 可以看到[8,1,2,9,3,7,4]是初始数据,先从0下标的8对元素内的每个元素依次比较,8没有比较是因为自己本身不需要比较所以省略。
image
  1. 第二次比较
  • 比对完成0下标的8后,依次对1下标的值重复上面的步骤,为了画图方便这里的图片没有考虑第一次已经排序完的值了。
image
  1. 第N此比较
  • 依次类推对后面的值进行依次重复步骤直到全部遍历完为止

代码逻辑

/**
     * 冒泡排序
     */
    private static void maoPao() {
        int[] array = new int[]{9, 6, 8, 7, 1, 100, 3, 2, 0, 4};

        for (int i = 0; i < array.length; i++) {

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

            }
        }

        //打印
        for (int i : array) {
            System.out.println(i);

        }
    }

输出log

0
1
2
3
4
6
7
8
9
100

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