0
点赞
收藏
分享

微信扫一扫

Java排序算法——选择排序

眼君 2022-01-20 阅读 31

选择排序原理

每次循环,找出当前最小值及其索引,将本次的首元素和该元素交换
即,第一次循环后,第一个元素为最小值;第二次后,第二个元素为次最小值

特点

选择排序不稳定

时间复杂度为O(n^2)

代码

public static void selectSort(int[] array) {
        int length = array.length;

        for(int i = 0; i < length - 1; i ++) {
            int index = i;
            int temp = array[i];
            for(int j = i + 1; j < length; j ++) {
                if(array[index] > array[j]) {
                    index = j;
                }
            }
            if(index != i) {
                temp = array[i];
                array[i] = array[index];
                array[index] = temp;
            }
            System.out.println("第" + (i+1) + "次排序后结果: " + Arrays.toString(array));
        }
        //System.out.println(Arrays.toString(array));
    }

结果

[8, 9, 1, 7, 2, 3, 5, 4, 6, 0]
第1次排序后结果: [0, 9, 1, 7, 2, 3, 5, 4, 6, 8]
第2次排序后结果: [0, 1, 9, 7, 2, 3, 5, 4, 6, 8]
第3次排序后结果: [0, 1, 2, 7, 9, 3, 5, 4, 6, 8]
第4次排序后结果: [0, 1, 2, 3, 9, 7, 5, 4, 6, 8]
第5次排序后结果: [0, 1, 2, 3, 4, 7, 5, 9, 6, 8]
第6次排序后结果: [0, 1, 2, 3, 4, 5, 7, 9, 6, 8]
第7次排序后结果: [0, 1, 2, 3, 4, 5, 6, 9, 7, 8]
第8次排序后结果: [0, 1, 2, 3, 4, 5, 6, 7, 9, 8]
第9次排序后结果: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
举报

相关推荐

0 条评论