美文网首页
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的排序算法——快速排序

相关文章

  • JS实现排序算法

    原文:常见排序算法之JavaScript实现 - 知乎 目录 冒泡排序 选择排序 插入排序 合并排序 快速排序 1...

  • JavaScript实现经典排序算法

    使用JavaScript实现的经典排序算法 util 冒泡 简单选择 直接插入 快速排序 堆排序 归并排序

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

  • PHP常用算法

    基于选择的排序算法 常见的基于选择的排序算法有:冒泡排序、插入排序、选择排序、归并排序和快速排序,我们在选在排序算...

  • 算法4:插入排序和选择排序算法的比较

    排序算法列表电梯: 选择排序算法:详见 《算法4》2.1 - 选择排序算法(Selection Sort), Py...

  • 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

    图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

  • 基础排序算法总结

    排序算法分为内部排序和外部排序,而我们经常说的基础排序算法,都是内部排序算法。包括冒泡排序,选择排序,插入排序,快...

  • 算法and数据结构

    算法 冒泡排序 选择排序 计数排序

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

    选择排序(Selection Sort) 选择排序是一种排序算法,是一个占用常用内存(In-place)的排序方法...

  • LeetCode大全

    1.常见排序算法: 常见的排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、...

网友评论

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

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