快速排序
2016-02-27 10:04
281 查看
public static void quicksort(int[] a){ sort(a,0,a.length-1); } private static void sort(int[] a, int lo, int hi){ if(hi<=lo) return; int j = partion(a,lo,hi); sort(a,lo,j-1); sort(a,j+1,hi); } private static int partion(int[] a,int lo, int hi){ int i = lo; int j = hi+1; int v = a[lo]; while(i<j){ while(a[++i]<=v)if(i==hi)break; while(a[--j]>=v)if(j==lo)break; if(i>=j)break; exct(a,i,j); } exct(a,lo,j); return j; } private static void exct(int[] a, int i, int j){ int t = a[i]; a[i] = a[j]; a[j] = t; }
相关文章推荐
- launcher默认app图标排序xml
- InterLockedIncrement and InterLockedDecrement函数原理
- 不同hadoop集群之间迁移hive数据
- java修饰符大全详解
- 1015 Reversible Primes
- 1033. To Fill or Not to Fill (25)
- 不同hadoop集群之间迁移hive数据
- 绪论-第1章-《数据结构题集》习题解析-严蔚敏吴伟民版
- 教你如何使两台笔记本通过无线网卡共享上网
- HDOJ A hard puzzle
- JQuery中的事件和选择器
- 检测移动设备方向的改变
- 免费论文查重
- 去除UIDatePicker和UIPickerView中间Row上面的分割线
- JAVA垃圾收集机制剖析
- 快速幂取模 模板
- 读书APP
- [置顶] Unity中基于NGUI插件制作序列帧动画
- 2016.2.27日(开学)学习总结
- Opengl 轻型库和碰撞检测相关