算法 第四版 2.3.17

题目提示直接告诉我们了

有两种情况:

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;ii) exch(a, i, j);
			else break;
		}
		exch(a, lo, j);
		return j;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int N=10;N<=100000;N*=10){

			Integer[] a = new Integer[N];
			for(int i=0;i


你可能感兴趣的:(算法 第四版 2.3.17)