JavaScript 选择排序法

Posted 乱舞春秋__

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 选择排序法相关的知识,希望对你有一定的参考价值。

核心思想:

(1)每次循环时,默认当前项为最小项(或最大项)

(2)将当前项与其后面每一项进行比较,并记录最小索引(或最大索引)

(3)将当前项与最小索引项(或最大索引项)的值进行交换

函数封装如下:

1.从小到大排序

        function selectionSort (array) {
            var temp;
            var minIndex;
            for (var i = 0; i < array.length - 1; i++) {
                minIndex = i;
                for (var j = i + 1; j < array.length; j++) {
                    if (array[j] < array[minIndex]) {
                        minIndex = j;
                    }
                }
                temp = array[i];
                array[i] = array[minIndex];
                array[minIndex] = temp;
            }
        }

2.从大到小排序

        function selectionSort(array) {
            var temp;
            var maxIndex;
            for (var i = 0; i < array.length - 1; i++) {
                maxIndex = i;
                for (var j = i + 1; j < array.length; j++) {
                    if (array[j] > array[maxIndex]) {
                        maxIndex = j;
                    }
                }
                temp = array[i];
                array[i] = array[maxIndex];
                array[maxIndex] = temp;
            }
        }

示例:

(1)将一个数组从小到大排序

        var arr = [6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6];
        function selectionSort (array) {
            var temp;
            var minIndex;
            for (var i = 0; i < array.length - 1; i++) {
                minIndex = i;
                for (var j = i + 1; j < array.length; j++) {
                    if (array[j] < array[minIndex]) {
                        minIndex = j;
                    }
                }
                temp = array[i];
                array[i] = array[minIndex];
                array[minIndex] = temp;
            }
        }
        selectionSort(arr);
        console.log(arr);

控制台输出:

(2)将一个数组从大到小排序

        var arr = [1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1];
        function selectionSort(array) {
            var temp;
            var maxIndex;
            for (var i = 0; i < array.length - 1; i++) {
                maxIndex = i;
                for (var j = i + 1; j < array.length; j++) {
                    if (array[j] > array[maxIndex]) {
                        maxIndex = j;
                    }
                }
                temp = array[i];
                array[i] = array[maxIndex];
                array[maxIndex] = temp;
            }
        }
        selectionSort(arr);
        console.log(arr);

控制台输出:

以上是关于JavaScript 选择排序法的主要内容,如果未能解决你的问题,请参考以下文章

js冒泡排序法——选择排序(other)——计数排序(桶排序)——快速排序——插入排序-更新

javascript选择排序法

JavaScript 选择排序法

JS实现插入排序法和选择排序法

找到多个名为 [spring_web] 的片段。这对于相对排序是不合法的

排序02-直接插入排序法