我必須實現快速排序。從Programming Pearls這裏是代碼:快速排序實現中的問題
public class Quick{
public static void quicksort(int x[], int l, int u)
{
if (l>=u)
return;
int t = x[l];
int i = l;
int j = u;
do
{
i++;
} while (i<=u && x[i]<t);
do
{
j--;
if (i>=j) break;
} while (x[j]>t);
swap(x, i, j);
swap(x, l, j);
quicksort(x, l , j-1);
quicksort(x, j+1, u );
}
public static void main(String[]args)
{
int x[] = new int[]{55,41,59,26,53,58,97,93};
quicksort(x, 0, x.length-1);
for (int i=0; i<x.length; i++)
{
System.out.println(x[i]);
}
}
public static void swap(int x[], int i, int j)
{
int s = x[i];
x[i] = x[j];
x[j] = s;
}
}
它不起作用。這裏輸出:
59
41
55
26
53
97
58
93
它爲什麼不起作用?
是的,它不看它整理得很好...... – VoodooChild 2010-06-02 07:11:55
嘗試正確格式化你的代碼 - 這使得它更容易閱讀和調試 – 2010-06-02 09:20:34