算法 第四版 2.3.6
来源:互联网 发布:易观大数据cto 编辑:程序博客网 时间:2024/06/06 12:55
package Cap2_3;import edu.princeton.cs.introcs.StdDraw;import edu.princeton.cs.introcs.StdOut;import edu.princeton.cs.introcs.StdRandom;import Cap2_1.SortCompare;import Cap2_1.SortTemplate;public class Quick3way extends SortTemplate{private static int cnt=0;public static void sort(Comparable[] a){StdRandom.shuffle(a);sort(a, 0, a.length-1);}public static void sort(Comparable[] a, int lo, int hi){if(hi <= lo) return;int lt = lo, i = lo + 1, gt = hi;Comparable v = a[lo];while(i <= gt){cnt++; // 比较int cmp = a[i].compareTo(v);if (cmp<0) exch(a, i++, lt++);else if (cmp>0) exch(a, i, gt--);else i++;}sort(a, lo, lt-1);sort(a, gt+1, hi); //重复部分不用管了;}public static void main(String[] args) {// TODO Auto-generated method stubStdDraw.setXscale(0, 3);StdDraw.setYscale(-1, 200000);int cnt=0;for(int N=100;N<=10000;N*=10){Quick3way.cnt=0;sort(SortCompare.randomInput(N));double t = Quick3way.cnt;double st = N*2*Math.log(N);StdOut.println(t+ " " + st);StdDraw.setPenColor(StdDraw.RED);StdDraw.filledRectangle(0.5+cnt, st/2, 0.3, st/2);StdDraw.setPenColor(StdDraw.BLUE);StdDraw.filledRectangle(0.5+cnt, t/2, 0.3, t/2);cnt++;}}}
阅读全文
0 0
- 算法 第四版 2.3.6
- 算法 第四版 2.3.5
- 算法 第四版 2.3.7
- 算法 第四版 2.3.8
- 算法 第四版 2.3.9
- 算法 第四版 2.3.17
- 算法 第四版 2.3.18
- 算法 第四版 2.3.20
- 算法 第四版 2.2.6
- 算法第四版习题
- 算法第四版版参考答案
- 算法第四版的BinarySearch
- 算法第四版环境配置
- 《算法第四版》环境搭建
- 算法第四版练习题答案
- 《算法》第四版入门准备
- 算法第四版练习题答案
- 算法第四版学习笔记
- HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
- RedHat / CentOS:如何在线更改当前网口 Slave的状态(bonding mode)
- IIPP Week 8
- Android测试教程 Mock之mockito,异步测试
- prim最小生成树算法
- 算法 第四版 2.3.6
- 移动端如何禁用底层的滚动事件,保证弹出层的滚动事件正常运行
- MySQL的btree索引和hash索引的区别
- javaGUI知识(二)
- JS原型链
- 一个类似Rxjava的响应式编程框架
- Lua和C++交互api学习
- git rebase -i
- Android群英传学习——第六章、Android绘图机制与处理技巧