快速排序列表Java的问题

时间:2015-03-31 14:06:31

标签: java sorting quicksort

我正在为我的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--;
          }
      }
  }  
}

非常感谢所有帮助。让代码工作。

0 个答案:

没有答案