算法 第四版 2.3.17
来源:互联网 发布:程序员入门知识 编辑:程序博客网 时间:2024/06/06 04:49
题目提示直接告诉我们了
有两种情况:
1.排序的数列包含a.length-1, 因为右边存在最大了,所以无需判断边界
2.排序的子数列的右边一位是上一次排序的v,肯定比他小,所以也无需判断边界
package Cap2_3;import Cap2_1.SortTemplate;import edu.princeton.cs.introcs.StdOut;import edu.princeton.cs.introcs.StdRandom;public class Quick extends SortTemplate{public static void sort(Comparable[] a){StdRandom.shuffle(a);int temp=0;for(int i=1;i<a.length;i++)if(less(a[temp], a[i])) temp = i;exch(a, temp, a.length-1);sort(a, 0, a.length-1);}private static void sort(Comparable[] a, int lo, int hi){if(hi <= lo) return;int j=partition(a, lo, hi);sort(a, lo, j-1);sort(a, j+1, hi);}private static int partition(Comparable[] a, int lo, int hi){int i=lo, j=hi+1;Comparable v = a[lo];while(true){while(less(a[++i], v));while(less(v, a[--j]));if(j>i) exch(a, i, j);else break;}exch(a, lo, j);return j;}public static void main(String[] args) {// TODO Auto-generated method stubfor(int N=10;N<=100000;N*=10){Integer[] a = new Integer[N];for(int i=0;i<N;i++)a[i]=i;StdRandom.shuffle(a);sort(a);assert isSorted(a);}}}
阅读全文
0 0
- 算法 第四版 2.3.17
- 算法 第四版 2.3.5
- 算法 第四版 2.3.6
- 算法 第四版 2.3.7
- 算法 第四版 2.3.8
- 算法 第四版 2.3.9
- 算法 第四版 2.3.18
- 算法 第四版 2.3.20
- 算法 第四版 动画 2.1.17
- 算法第四版习题
- 算法第四版版参考答案
- 算法第四版的BinarySearch
- 算法第四版环境配置
- 《算法第四版》环境搭建
- 算法第四版练习题答案
- 《算法》第四版入门准备
- 算法第四版练习题答案
- 算法第四版学习笔记
- js常用方法_格式化金额_比较时间对象_秒转时分秒
- hdu6205-模拟&思维-card card card
- jQuery设计思想
- 往有序链表的插入元素使原链表依旧有序
- C语言 猜拳游戏
- 算法 第四版 2.3.17
- 浅谈UML中的聚合与组合
- PAT (Basic Level) Practise (中文) 1054. 求平均值 (20)
- 78. Subsets
- 第二周——C++的三种参数传递方法
- 使用Qt资源
- Python学习笔记 --- 使用Base64对数据加密解密
- SpringCloud基础(1)
- 什么是RUP?