javascript - 在我的快速排序中递归

标签 javascript algorithm sorting quicksort

我目前正尝试在 javascript 中对数组实现快速排序。我有总体布局,但由于某种原因递归不起作用。它似乎适用于代码的第二次迭代,但在那之后,它似乎就搞砸了。不确定我做错了什么。

function main() {
  var type = "quicksort"
  var testArray = [9, 6, 5, 0, 8, 2, 4, 7];

  quickSort(testArray, 0, testArray.length - 1);
  for (var i = 0; i < testArray.length; i++) {
    console.log(testArray[i]);
  }

}

function quickSort(array, start, end) {
  var type = "quicksort"
  var pIndex;

  if (start <= end) {
    pIndex = partition(array, start, end);
    quickSort(array, start, pIndex - 1);
    quickSort(array, pIndex + 1, end);
  }


}

function partition(array, start, end) {
  var x = end;
  console.log(start);
  var i = start - 1;
  var temp;

  for (var j = 0; j < end - 1; j++) {
    if (array[j] <= x) {
      i++;
      temp = array[j];
      array[j] = array[i];
      array[i] = temp;
      temp = 0;


    }
  }

  temp = array[i + 1];
  array[i + 1] = array[x];
  array[x] = temp;
  temp = 0;

  return i + 1;
}

main();

最佳答案

一些错误:

if (start <= end) {无需治疗病例start = end

如何 for (var j = 0当范围从 start 开始时从 0 开始?

if (array[j] <= x) {您将索引与项目值进行比较?

关于javascript - 在我的快速排序中递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46066149/

相关文章:

javascript - UI-Router 状态 : How to make app. 使用 $rootScope.$ 在缩小安全上运行

javascript - Mongoose : Query for starts with

在 7 个单独的玩具上混合颜色的算法

algorithm - 在 O(n) 中对 [0,n^2 - 1] 之间的 n 个数字进行排序?

c - 从 C 中的 typedef 结构对数组进行排序

javascript - 输入最大长度不适用于 Android -Ionic

javascript - typescript |套接字IO : How to refer to the client object

algorithm - 多个数组和索引中值的成对绝对差的最大和

c++ - 对数组排序后,为什么我看到的是地址而不是值?

r - 按字母和数字列对数据框进行排序