- function shellSort(arr) {
- var len = arr.length,
- temp,
- gap = 1;
- console.time('希尔排序耗时:');
- while(gap < len/5) { //动态定义距离序列
- gap =gap*5+1;
- }
- for (gap; gap > 0; gap = Math.floor(gap/5)) {
- for (var i = gap; i < len; i++) {
- temp = arr[i];
- for (var j = i-gap; j >= 0 && arr[j] > temp; j-=gap) {
- arr[j+gap] = arr[j];
- }
- arr[j+gap] = temp;
- }
- }
- console.timeEnd('希尔排序耗时:');
- return arr;
- }
- var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48];
- console.log(shellSort(arr));//[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
(1)算法简介
(2)算法描述和实现
n个记录的直接选择排序可经由n-1趟直接选择排序获得有序结不雅。具体算法描述如下:
- <1>.初始状况:无序区为R[1..n],有序区为空;
- <2>.第i趟排序(i=1,2,3…n-1)开端时,当前有序区和无序区分别为R[1..i-1]和R(i..n)。该趟排序大年夜当前无序区中-选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1..i]和R[i+1..n)分别变为记录个数增长1个的新有序区和记录个数削减1个的新无序区;
- <3>.n-1趟停止,数组有序化了。
Javascript代码实现:
- function selectionSort(arr) {
- var len = arr.length;
- var minIndex, temp;
- console.time('选择排序耗时'
推荐阅读
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 作为一个工科的学生,我们经久以来会应用比如像是矩阵以及行列式这些在线性代数上的常识,在这篇文┞仿中,我>>>详细阅读
本文标题:十大经典排序算法的JS版
地址:http://www.17bianji.com/lsqh/36267.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示