美文网首页
JavaScript的排序算法——选择排序

JavaScript的排序算法——选择排序

作者: 流浪的三鮮餡 | 来源:发表于2018-11-25 23:41 被阅读26次

    选择排序(Selection Sort)

    选择排序是一种排序算法,是一个占用常用内存(In-place)的排序方法。时间复杂度为O(n2)。通常情况下,在处理大型数据的时候,性能要比相似的插入排序低。选择排序因其简单性而著称,并且在某些情况下性能要优于更复杂的算法,尤其是在辅助存储空间有限的情况下。

    原理

    选择排序的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。

    选择排序(Selection Sort)
    选择排序(Selection Sort)

    复杂度

    算法 最好情况 平均情况 最坏情况 空间复杂度 稳定性
    选择排序 O(n2) O(n2) O(n2) O(1) 不稳定

    ES6实现

    function SelectionSort(originalArray) {
        const array = [...originalArray];
        let len = array.length;
        for (let i = 0; i < len - 1; i++) {
          let  minIndex = i;
            for (let j = i + 1; j < len; j++) {
                if (array[j] < array[minIndex]) {
                    minIndex = j;
                }
            }
           if (minIndex != i) {
               [array[minIndex], array[i]] = [array[i], array[minIndex]]
           }
        }
        return array;
    }
    

    参考

    维基百科
    百度百科

    相关阅读

    JavaScript的排序算法——冒泡排序
    JavaScript的排序算法——选择排序
    JavaScript的排序算法——插入排序
    JavaScript的排序算法——归并排序
    JavaScript的排序算法——快速排序

    相关文章

      网友评论

          本文标题:JavaScript的排序算法——选择排序

          本文链接:https://www.haomeiwen.com/subject/ayamqqtx.html