选择排序


选择排序流程:

先看动画示意:

选择排序

流程如下:

  1. 假设数组长度n,从左开始遍历数组,找出数组中的最小值与其下标
  2. 第一轮遍历完,就找出了数组的最小值,将其与数组第一位互换位置
  3. 数组的最小值就移动到了第一位
  4. 第二轮,从数组第二位开始遍历,重复上述步骤
  5. 第二轮结束后,数组第二小的数就移动到了数组第二位
  6. 多次重复后就得到了有序数组

代码示例:

public class Select {

    public static void main(String[] args) {
        int[] array = {3, 44, 38, 5, 27, 15, 36};
        selectSort(array);
        printArray(array);
    }

    public static void selectSort(int[] array) {

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

    public static void printArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
    }
}
文章作者: 周君
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 周君 !
评论