private static char[] quicksort (char[] array , int left , int right) {
if (left < right) {
int p = partition(array , left, right);
quicksort(array, left, p − 1 );
quicksort(array, p + 1 , right);
}
for (char i : array)
System.out.print(i + ” ”);
System.out.println();
return array;
}
private static int partition(char[] a, int left, int right) {
char p = a[left];
int l = left + 1, r = right;
while (l < r) {
while (l < right && a[l] < p) l++;
while (r > left && a[r] >= p) r−−;
if (l < r) {
char temp = a[l];
a[l] = a[r];
a[r] = temp;
}
}
a[left] = a[r];
a[r] = p;
return r;
}
}
我对上述编码有疑问,我知道上面的编码会返回以下内容
B I G C O M P U T E R
B C E G I M P U T O R
B C E G I M P U T O R
B C E G I M P U T O R
B C E G I M P U T O R
B C E G I M O P T U R
B C E G I M O P R T U
B C E G I M O P R T U
B C E G I M O P R T U
B C E G I M O P R T U
B C E G I M O P R T U
B C E G I M O P R T U
B C E G I M O P R T U
当使用序列BIGCOMPUTER时,我的问题是有人可以向我解释代码中发生了什么以及如何发生?
我对快速排序算法有点了解,但在上面的例子中看起来并不相同。
答案 0 :(得分:2)
答案 1 :(得分:1)
这是调试器的典型用例。通过调试器运行代码并逐步执行它,检查调用堆栈和局部变量。应该很清楚发生了什么。
如果您不熟悉调试器,那么启动imho,here are some excellent video Eclipse教程永远不会太早。