有那位高手知道数组在排序时候用的那个递归调用的方法??
也就是说先把数组里面的第一个元素和后面的比较,找到它的位置后,把数组分成两个小的数组,然后再把两个小的数组分成四个,再分成八个,直到最后一个数组的元素为一个的时候结束,要求是递归!!!

解决方案 »

  1.   

    是快速排序吧,随手写一个quicksort(int[] a, int left, int right) {
        if (left >= right) {
            return;
        }
        int v = a[left];
        int i = left + 1;
        int j = right;
        int tmp;
        while (i >= j) {
            for (; i<a.length-1 && a[i]<v; i++);
            for (; j>0 && a[j]>v; j--);
            if (i < j) {
                tmp = a[i];
                a[i] = a[j];
                a[j] = tmp;
            }
        } 
        a[left] = a[j];
        a[j] = v;
        quicksort(a, left, j-1);
        quicksort(a, j+1, right);
    }
      

  2.   

    有点看不太懂,你那里面的right和left是自定义的变量还是什么啊???