日期:2014-05-20  浏览次数:20731 次

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

------解决方案--------------------
是快速排序吧,随手写一个

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);
}
------解决方案--------------------
是参数啊,不会连函数的参数都不知道吧


------解决方案--------------------
是快速排序。