将一个有序的数组变为无序

2016-01-20  本文已影响0人  一氧化二氢有毒

在看《算法》的时候遇到一个题目,要求生成一个无序的字符串。 看答案有快排的思想在里面

private static void best(int[] a, int lo, int hi) { 
// precondition: a[lo..hi] contains keys lo to hi, in order 
    for (int i = lo; i <= hi; i++) 
        assert a[i] == i; 
    if (hi <= lo) return;
    int mid = lo + (hi - lo) / 2; 
    best(a, lo, mid-1); 
    best(a, mid+1, hi); 
    exch(a, lo, mid);
 }

via:http://algs4.cs.princeton.edu/23quicksort/QuickBest.java.html

上一篇下一篇

猜你喜欢

热点阅读