本文实例讲述了JavaScript实现快速排序的方法。分享给大家供大家参考,具体如下:
思想:
通过分治思想、递归方法将数据依次分解为包含较小元素和较大元素的不同子序列
1.在数组中选择一个元素为基准
2.对数组进行遍历,小于基准的元素都移到基准的左边,大于基准的元素都移到基准的右边
3.对基准左边和右边的两个子集,不断重复前两步,直到所有子集只剩下一个元素为止
实现代码:
function sqort(arr){ if(arr.length===0){ return []; } var left=[]; var right=[]; var pivot=arr[0];//(基准以首元素) for(var i=1;i<arr.length;i++){ if(arr[i]<pivot){ left.push(arr[i]); }else{ right.push(arr[i]); } } return sqort(left).concat(pivot,qsort(right));//递归 } var a=[]; for (i=0;i<10;++i){ a[i]=Math.floor(Math.random()*100+1); } console.log(a); console.log(sqort(a)); //(基准以中间元素的情况) function sqort(arr){ if(arr.length<=1){ return arr; } var left=[]; var right=[]; var pivotIndex=Math.floor(arr.length/2); var pivot=arr.splice(pivotIndex,1)[0];//(基准以中间元素) for(var i=1;i<arr.length;i++){ if(arr[i]<pivot){ left.push(arr[i]); }else{ right.push(arr[i]); } } return sqort(left).concat(pivot,sqort(right));//递归 } var a=[12,34,23,78,34,26]; console.log(a); console.log(sqort(a));
注: 对于较小数组和较大数组分别递归调用sqort()
函数,当递归结束时候,再将较小的数组与基准以及较大的数组连接起来形成最终的有序数组并返回。
PS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 群星《谁杀死了Hi-Fi音乐》涂鸦精品 [WAV+CUE][1G]
- 群星1998《宝丽金最精彩98》香港首版[WAV+CUE][1G]
- 汪峰《也许我可以无视死亡》星文[WAV+CUE][1G]
- 李嘉-1991《国语转调2》[天王唱片][WAV整轨]
- 蔡琴2008《金声回忆录101》6CD[环星唱片][WAV整轨]
- 群星《2024好听新歌36》AI调整音效【WAV分轨】
- 梁朝伟.1986-朦胧夜雨裡(华星40经典)【华星】【WAV+CUE】
- 方芳.1996-得意洋洋【中唱】【WAV+CUE】
- 辛欣.2001-放120个心【上海音像】【WAV+CUE】
- 柏菲·万山红《花开原野1》限量开盘母带ORMCD[低速原抓WAV+CUE]
- 柏菲·万山红《花开原野2》限量开盘母带ORMCD[低速原抓WAV+CUE]
- 潘安邦《思念精选集全纪录》5CD[WAV+CUE]
- 杨千嬅《千嬅新唱金牌金曲》金牌娱乐 [WAV+CUE][985M]
- 杨钰莹《依然情深》首版[WAV+CUE][1G]
- 第五街的士高《印度激情版》3CD [WAV+CUE][2.4G]