Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
快速排序列表Java的问题_Java_Sorting_Quicksort - Fatal编程技术网

快速排序列表Java的问题

快速排序列表Java的问题,java,sorting,quicksort,Java,Sorting,Quicksort,我正在为AP计算机科学课程编写一个程序(我是编程新手)。我写了一个快速排序方法,但排序不正确,我找不到我的问题。这是我的密码。输出结果会在列表中移动一些值,但顺序不正确。我正试图根据学生的成绩对他们的名单进行分类。getScore()访问我根据其排序的学生分数 public static void quickSort(List<Student> b) { int left = 0, right = b.size()-1; if (left >= right) retur

我正在为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--;
          }
      }
  }  
}
公共静态无效快速排序(列表b){
int left=0,right=b.size()-1;
如果(左>=右)返回;
int i=左;
int j=右;
int pivotValue=b.get((左+右)/2.getScore();
而(i如果(我),请提供样本输入和输出