改进冒泡排序: 设置一标记性变量pos,用于记录每趟排序中最后一次进行交换的地位。因为pos地位之后的记录均已交换到位,故在进行下一趟排序时只要扫描到pos地位即可。
改进后算法如下:
- function bubbleSort2(arr) {
- console.time('改进后冒泡排序耗时');
- var i = arr.length-1; //初始时,最后地位保持不变
- while ( i> 0) {
- var pos= 0; //每趟开端时,无记录交换
- for (var j= 0; j< i; j++)
- if (arr[j]> arr[j+1]) {
- pos= j; //记录交换的地位
- var tmp = arr[j]; arr[j]=arr[j+1];arr[j+1]=tmp;
- }
- i= pos; //为下一趟排序作预备
- }
- console.timeEnd('改进后冒泡排序耗时');
- return arr;
- }
- var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48];
- console.log(bubbleSort2(arr));//[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
推荐阅读
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 作为一个工科的学生,我们经久以来会应用比如像是矩阵以及行列式这些在线性代数上的常识,在这篇文┞仿中,我>>>详细阅读
本文标题:十大经典排序算法的JS版
地址:http://www.17bianji.com/lsqh/36267.html
1/2 1

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