javascript之快速排序
快速排序思想其实还是挺简单的,分三步走:
1、在数组中找到基准点,其他数与之比较。
2、建立两个数组,小于基准点的数存储在左边数组,大于基准点的数存储在右边数组。
3、拼接数组,然后左边数组与右边数组继续执行1、2两个步骤,直到最后完成数组排序。
这里直接上代码:
function quickSort(arr){ if(arr.length<=1){ return arr // 如果数组长度小于或等于1,则直接返回数组 } var num = Math.floor(arr.length/2); // 找到数组中间的索引,如果是浮点数,则向下取整 var centerVal = arr.splice(num,1); // 找到数组中间索引的值 var left = []; var right = []; for(var i=0;i<arr.length;i++){ if(arr[i]<centerVal){ left.push(arr[i]) // 基准点左边的数放到左边数组 }else{ right.push(arr[i]) // 基准点右边的数放到右边数组 } } // 利用concat拼接数组,并调用quickSort方法 return quickSort(left).concat([centerVal],quickSort(right)) } alert(quickSort([12,4654,389798,313,453,15,16,43]))
分析:实现快速排序的几个要点:
1、找到比较的基准点;
2、建立两个空数组,用来分别存放与基准点相比较的数。
3、将数组中的数分别与基准点相比较,小于基准点的数存放在左边数组,否则存放在右边数组。
4、将左边数组、基准点、右边数组拼接起来,拼接的同时,左、右两个数组分别执行前3个步骤,直到完成数组的最终排序。
作者:江峰★
出处:http://www.cnblogs.com/jf-67/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利
分类:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?