美文网首页
分解javascript 选择排序算法

分解javascript 选择排序算法

作者: Searchen | 来源:发表于2018-05-24 18:03 被阅读9次

掌握算法,先理解原理

选择排序.gif

选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

n个记录的直接选择排序可经过n-1趟直接选择排序得到有序结果
n-1趟结束,数组有序化了。


var array = [11, 43, 24, 76, 89, 43, 65]
function selectionSort(arr) {
    var len = arr.length
    var minIndex, temp
    for (var i = 0; i < len - 1; i++) {  //跑`n-1`趟 
        minIndex = i
        for (var j = i + 1; j < len; j++) {  //每一趟遍历找最小元
            if(arr[j] < arr[minIndex]) {     //找到最小值
                                              //参考冒泡排序中的交换位置
                  temp = arr[minIndex]
                   arr[minIndex] = arr[j]
                   arr[j] = temp
            }
        }
    }
    return arr
}
selectionSort(array)
console.log(array)  //[ 11, 24, 43, 43, 65, 76, 89 ]

上面可以发现,选择排序中每一次找最小元都要遍历一次,那么如何优化算法,最快速度找到最小元?
我们知道,最小堆的根节点一定是最小值,接下来有了 ----- 堆排序算法

相关文章

  • 分解javascript 选择排序算法

    掌握算法,先理解原理 选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序...

  • 分解javascript快速排序算法

    快速排序是处理大数据集最快的排序算法之一。它是一种分而治之的算法,通过递归的方 式将数据依次分解为包含较小元素和较...

  • 分解javascript 堆排序算法

    掌握算法,先理解原理 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉...

  • 分解javascript 希尔排序算法

    掌握算法,先理解原理 希尔排序,利用插入排序的简单,又要克服插入排序一次只能交换相邻两个数的缺点。看下面两张图的两...

  • 分解javascript冒泡排序算法

    掌握算法,先理解原理 一趟冒泡 交换位置: 很好理解,我们a,b 交换位置,我们先把a 移走,然后再把b 放进a,...

  • JS实现排序算法

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

  • JavaScript实现经典排序算法

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

  • 算法-选择排序

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

  • 分解javascript 插入排序算法

    掌握算法,先理解原理 理解:我们可以抽象成玩牌,我们把牌分成两组、每抽一张牌的时候,总会给牌排序上图中橘色的是手里...

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

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

网友评论

      本文标题:分解javascript 选择排序算法

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