选择排序

话不多说,直接上代码(Coding):

/**
 * 选择排序 每轮选择当前位置 找出后面的较小值与当前位置进行替换
 */
public class Demo03 {
    public static void main(String[] args) {
        // 1、定义一个元素列表
        int[] numList = new int[]{5, 2, -1, 20};
        // 2、选择排序
        chooseSort(numList);
        // 3、打印
        for (int i = 0; i < numList.length; i++) {
            System.out.print(i == numList.length - 1 ? numList[i] : numList[i] + ",");
        }
    }

    /**
     * 选择排序
     *
     * @param numList
     */
    private static void chooseSort(int[] numList) {
        // 0 -> 1 2 3
        // 1 -> 2 3
        // 2 -> 3
        for (int i = 0; i < numList.length - 1; i++) {
            for (int j = i + 1; j < numList.length; j++) {
                if (numList[i] > numList[j]) {
                    int temp = numList[i];
                    numList[i] = numList[j];
                    numList[j] = temp;
                }
            }
        }
    }
}

这边会发现冒泡排序好像和选择排序有点像 因此我这边顺便把区别也给写下:

选择排序和冒泡排序的区别?

1、每轮比较的次数不同 冒泡排序需要每轮多次比较 第一个和第二个比 然后第二个和第三个比 逐一比

但选择排序每轮是单次比较的 它是每轮选择当前位置 找出后面的更小值 与自己进行交换位置

2、因此从轮数来看 比较时间效率的话 选择排序会比较快

3、但如果元素列表中出现重复的元素的情况的话 冒泡排序会比较稳定 用选择排序的话就会比较不稳定

.......剩下的请大家帮忙写下!

posted @ 2023-01-29 19:09  AxeBurner  阅读(13)  评论(0编辑  收藏  举报