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>

  

最新文章

  1. jsp富文本图片和数据上传
  2. 利用浏览器LocalStorage缓存图片,视频文件
  3. Page in/Page out/Page fault
  4. 在VS2012中编译WinXP兼容的程序
  5. C语言中的fread和fwrite
  6. UVALive 3956 Key Task (bfs+状态压缩)
  7. [老老实实学WCF] 第七篇 会话
  8. 2016 Multi-University Training Contest 1 Chess 组合游戏+状压(预处理)
  9. nyoj-291 互素数个数 欧拉函数
  10. 河内塔(hanoi)
  11. VMware三种链接方式
  12. js中实现继承的不同方式以及其缺点
  13. 通过DbVisualizer 工具运行DB2存储过程实现INSERT语句主键自增造数
  14. 【Maven】eclipse中使用Maven、生命周期
  15. Java能抵挡住JavaScript的进攻吗?
  16. Linux命令之du
  17. SGU---103 最短路变形
  18. 顺序查找 &amp;&amp; 折半查找
  19. C# ASCII码排序
  20. C# - 简单介绍TaskScheduler

热门文章

  1. php第十三节课
  2. ELK6 收集不同来源的日志并做区分
  3. 洛谷 2042 BZOJ 1500 NOI 2005 维护数列
  4. web开发如何使用高德地图API(三)点击热点打开信息窗体
  5. openstack部署工具简介
  6. [TS-A1505] [清橙2013中国国家集训队第二次作业] 树 [可持久化线段树,求树上路径第k大]
  7. SQL 用户定义表类型,在存储过程里使用数据类型作參数
  8. [E2E] Visual Differing Tests with Puppeteer and PixelMatch
  9. Hive权限之审计
  10. mongo集群的监控(一)