js排序算法详解-选择排序
2017-09-21 20:13
323 查看
全栈工程师开发手册 (作者:栾鹏)
js系列教程5-数据结构和算法全解
这么来理解,假设在三伏天有一趟室内游泳课,教练说了先在露天场地等着,从你们当中先选取最大个先进去,然后再从剩余的人中选择最大个进去,依次类推。那么小个的就在想了,教练你TMD的脑子是不是被驴踢了。但是如果是冒泡排序那更有意思了,所有的人先排好队再进去,这样还好一点最起码每个人的心理能平衡一点。简单理解选择排序就是从一个未知数据空间,选取数据之最放到一个新的空间。
废话不多说,看例子:
2.1选择排序
经小编测试,选择排序似乎比冒泡排序的自创版还要省时间,其实选择排序适合小数据排序,具体这个小数据有多小呢,简单的测试了一下,在1000条以内的数据,选择排序更胜1.3冒泡排序。
选择排序动图
js系列教程5-数据结构和算法全解
js排序算法详解-选择排序
相对于冒泡排序还有一种类似的方法就是选择排序,顾名思义就是选择性排序,什么意思呢?这么来理解,假设在三伏天有一趟室内游泳课,教练说了先在露天场地等着,从你们当中先选取最大个先进去,然后再从剩余的人中选择最大个进去,依次类推。那么小个的就在想了,教练你TMD的脑子是不是被驴踢了。但是如果是冒泡排序那更有意思了,所有的人先排好队再进去,这样还好一点最起码每个人的心理能平衡一点。简单理解选择排序就是从一个未知数据空间,选取数据之最放到一个新的空间。
废话不多说,看例子:
2.1选择排序
function selectionSort(arr) { var len = arr.length; var minIndex, temp; console.time('选择排序耗时'); for (var i = 0; i < len - 1; i++) { minIndex = i; for (var j = i + 1; j < len; j++) { if (arr[j] < arr[minIndex]) { //寻找最小的数 minIndex = j; //将最小数的索引保存 } } temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } console.timeEnd('选择排序耗时'); return arr; } var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]; console.log(selectionSort(arr));//[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50];
经小编测试,选择排序似乎比冒泡排序的自创版还要省时间,其实选择排序适合小数据排序,具体这个小数据有多小呢,简单的测试了一下,在1000条以内的数据,选择排序更胜1.3冒泡排序。
选择排序动图
相关文章推荐
- 深入Java冒泡排序与选择排序的区别详解
- js排序算法详解-快速排序
- Selection Sort(排序详解 之 选择排序)
- 【内部排序】六:直接选择排序(Straight Selection Sort)详解与代码
- JS排序算法之冒泡排序,选择排序与插入排序实例分析
- C语言选择排序详解及其实现
- 排序算法(三)冒泡、选择排序的Python实现及算法优化详解 推荐
- 必须知道的八大种排序算法【java实现】(二) 选择排序,插入排序,希尔算法【详解】
- 笔试面试最常涉及到的12种排序算法(包括插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序、桶排序、计数排序和基数排序)进行了详解。每一种算法都有基本介绍、算
- C语言选择排序详解及其实现
- java选择排序详解
- PHP四种基础算法详解(冒泡排序、选择排序、插入排序、快速排序)
- 史上最简单!冒泡、选择排序的Python实现及算法优化详解
- 【排序】插入排序,希尔排序,选择排序,冒泡排序,堆排序详解及稳定性分析
- 详解选择排序和对其优化
- 简单选择排序,树形选择排序,堆排序详解
- 必须知道的八大种排序算法【java实现】(二) 选择排序,插入排序,希尔算法【详解】
- Java 选择排序、插入排序、希尔算法实例详解
- 数据结构排序系列详解之六 树形选择排序
- 插入排序,希尔排序,选择排序详解以及消耗存储比较