前端孵化日记(八)选择排序

136 阅读1分钟

基本思想

  拿出用数组第i项与数组的第i+1次开始一次比较,将最小的那一项的索引值[min]保存,然后再将数组的第i项索引为[i-1]与这个最小值兑换位置。通过多次循环,不断将最小值放到前面。

动图演示

代码实现

    <script>
        function selectSort(n) {
            let tem;
            let min;
            for (let i = 0; i < n.length - 1; i++) {
                min=i;
                for (let j = i + 1; j < n.length; j++) {
                    if (n[min] > n[j]) {
                        min = j;
                    }
                }
                n[tem] = n[i];
                n[i] = n[min];
                n[min] = n[tem];
            }
            return n;
        }
        let num = [9, 2, 4, 6, 8, 3, 7, 1, 5];
        console.log(selectSort(num));
    </script>