我正在为我的AP计算机科学课程编写一个程序(我是编程新手)。我写了一个快速排序方法,但它没有正确排序,我找不到我的问题。这是我的代码。输出结果在列表中移动了一些值,但输入顺序不正确。我正在尝试根据他们的成绩对学生列表进行排序。 getScore()访问我基于的排序的学生分数。
public static void quickSort(List<Student> b) {
int left = 0, right = b.size()-1;
if (left >= right) return;
int i = left;
int j = right;
int pivotValue = b.get((left+right) / 2).getScore();
while (i < j) {
while (b.get(i).getScore() < pivotValue) i++;
while (pivotValue < b.get(j).getScore()) j--;
if (i <= j) {
Student temp = b.get(i);
b.set(i, b.get(j));
b.set(j, temp);
i++;
j--;
}
}
}
}
非常感谢所有帮助。让代码工作。