QuickSort使用第一个索引作为枢轴不工作

时间:2018-02-19 20:54:49

标签: java quicksort

嘿,我一直在尝试使用前端枢轴和后端枢轴为我的班级写一个快速排序程序。后端数据枢轴没有问题,但是当我厌倦修改代码以使用前端数据透视表时,它不会完全对列表进行排序。

由于这是针对学校作业的,我不想只是从其他来源翻录代码。 (我发现了很多工作代码的例子,但它与我的很不一样,而且我正在努力学习,而不仅仅是复制粘贴。)

这是我的前端枢轴代码,如果您需要更多,请告诉我。谢谢。 :)

public static int partitionPivotFront(int[] a, int lo, int hi)
{
  int pivot = a[lo];
  int i = hi - 1;

  for (int j = hi; j > lo; j--)
    {
    if (a[j] >= pivot)
      {
        i--;
        int temp = a[i];
        a[i] = a[j];
        a[j] = temp;
      }
    }
    int temp = a[i + 1];
    a[i + 1] = a[lo];
    a[lo] = temp;
    return i + 1;
}

1 个答案:

答案 0 :(得分:0)

查看你的if语句并仔细检查你在比较什么以及你在做什么。 由于pivot始终是第一个元素,因此您需要比较元素是否小于pivot,以及是否将它放在pivot之前。