3路排序算法
来源:互联网 发布:剑灵捏脸数据图下载 编辑:程序博客网 时间:2024/05/17 08:26
原理
索引
0~zero
都是0
,two~n-1
都是2
,中间为1
,即从0
开始,当前索引i
指向的数arr[i]
- 若
arr[i]===1
,即中间的1
多了一个,将i++
即可- 若
arr[i]===2
,则将当前的arr[i]
放到two-1
的位置,即two
又扩展了1
位- 若
arr[i]===0
,则将当前的arr[i]
放到zero+1
的位置,即zero
又扩展了1
位- 当前索引
i===two
时结束
function threeRoad(arr) { //0~zero :0 //two~n-1 :2 //i指向1的最后一个索引 var zero = -1, two = arr.length; for(var i = 0;i<two;){ if(arr[i] === 1){ i++; }else if(arr[i] === 2){ two--; swap(arr,i,two); }else if(arr[i] === 0){ zero++; swap(arr,zero,i); i++; } } return arr;}function swap(arr,i,j) { var temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;}
阅读全文
0 0
- 3路排序算法
- 排序算法3---计数排序
- 排序算法《3》插入排序
- 排序算法(3)-堆排序
- [排序算法3] - 希尔排序
- 排序算法(3)-选择排序
- 排序算法3-快速排序
- 排序算法(3)----归并排序
- 学习排序算法3--比较排序算法
- [3] 算法之路 - 插入排序
- 排序算法(3)
- 算法、排序(3)
- 排序算法3
- 3种排序算法
- 排序算法集合 -3
- 排序算法---3
- 排序算法集合 -3
- 【算法】3、堆排序
- 今日笔记--ssm中对sql进行优化
- C#不用ArcEngine,生成Shp文件(六) 源码
- Zookeeper在Windows与Linux下的安装
- gets
- 简单的可视化日历系统
- 3路排序算法
- POJ 2718 暴力
- 自动化测试学习
- springmvc之Jackson实现po对象与Json字符串的互转
- 关于弹性布局flex属性详解
- Android中Recyclerview使用12----实现瀑布流样式
- 6个轻松用好大数据的绝密秘籍
- Unity刚体、碰撞器、实验和总结
- 数据结构-二叉堆