选择排序之直接选择排序

原理:将序列划分为无序和有序区,寻找无序区中的最小值和无序区的首元素交换,有序区扩大一个,循环最终完成全部排序。

    private static void sortSelect(int[] array) {
        for (int i = 0; i < array.length - 1; i++) {
            //寻找值最小的元素
            int min = array[i];
            int minIndex = i;
            for (int j = i + 1; j < array.length; j++) {
                if (array[j] < min) {
                    min = array[j];
                    minIndex = j;
                }
            }
            //将最小元素与i处元素交换
            array[minIndex] = array[i];
            array[i] = min;
            printArray(String.format(Locale.getDefault(), "min = %2d , minIndex = %2d : ", min, minIndex), array);
        }
    }

运行结果:

数组:  55  22  66  33  11  99  77  44  88
选择排序:
min = 11 , minIndex =  4 :   11  22  66  33  55  99  77  44  88
min = 22 , minIndex =  1 :   11  22  66  33  55  99  77  44  88
min = 33 , minIndex =  3 :   11  22  33  66  55  99  77  44  88
min = 44 , minIndex =  7 :   11  22  33  44  55  99  77  66  88
min = 55 , minIndex =  4 :   11  22  33  44  55  99  77  66  88
min = 66 , minIndex =  7 :   11  22  33  44  55  66  77  99  88
min = 77 , minIndex =  6 :   11  22  33  44  55  66  77  99  88
min = 88 , minIndex =  8 :   11  22  33  44  55  66  77  88  99

你可能感兴趣的:(选择排序之直接选择排序)