JS排序之快速排序
2024-10-01 03:55:15
JS排序之快速排序
一个数组中的数据,选择索引为(2/数组长度)的那个数据作为基数,数组中的其他数据与它对比,比它数值小的放在做数组,比它数值大的放在右数组,最后组合 左数组+基数+右数组,其中,左数组和右数组再调该方法,也就是递归调用,当数组长度小于2时,停止。
<script>
var arr=[12,56,15,65,55,90,21,9];
function fastSort(arr){
if(arr.length<2){
return arr;
}
var left=[];
var right=[];
var midIndex=Math.floor(arr.length/2);
var flagNum=arr.splice(midIndex,1)[0];
for(i=0;i<arr.length;i++){
if(arr[i]<flagNum){
left.push(arr[i]);
}else{
right.push(arr[i])
}
}
return fastSort(left).concat([flagNum],fastSort(right));
}
console.log(fastSort(arr));
</script>
最新文章
- jsp富文本图片和数据上传
- 利用浏览器LocalStorage缓存图片,视频文件
- Page in/Page out/Page fault
- 在VS2012中编译WinXP兼容的程序
- C语言中的fread和fwrite
- UVALive 3956	Key Task (bfs+状态压缩)
- [老老实实学WCF] 第七篇 会话
- 2016 Multi-University Training Contest 1 Chess 组合游戏+状压(预处理)
- nyoj-291 互素数个数 欧拉函数
- 河内塔(hanoi)
- VMware三种链接方式
- js中实现继承的不同方式以及其缺点
- 通过DbVisualizer 工具运行DB2存储过程实现INSERT语句主键自增造数
- 【Maven】eclipse中使用Maven、生命周期
- Java能抵挡住JavaScript的进攻吗?
- Linux命令之du
- SGU---103 最短路变形
- 顺序查找 &;&; 折半查找
- C# ASCII码排序
- C# - 简单介绍TaskScheduler
热门文章
- php第十三节课
- ELK6 收集不同来源的日志并做区分
- 洛谷 2042 BZOJ 1500 NOI 2005 维护数列
- web开发如何使用高德地图API(三)点击热点打开信息窗体
- openstack部署工具简介
- [TS-A1505] [清橙2013中国国家集训队第二次作业] 树 [可持久化线段树,求树上路径第k大]
- SQL 用户定义表类型,在存储过程里使用数据类型作參数
- [E2E] Visual Differing Tests with Puppeteer and PixelMatch
- Hive权限之审计
- mongo集群的监控(一)