繁体   English   中英

JavaScript quickSort 错误输出

[英]JavaScript quickSort wrong output

这是我写的快速排序算法:

 var arr = [0, 2, 5, 10, 3, 22, 12, 8, 20]; let quickSort = (arr) => { let len = arr.length; if (len === 1) { return arr; }; let pivot = arr.length - 1; const rightArr = []; const leftArr = []; for (let i = 0; i < len - 1; i++) { let j = i + 1; if (arr[j] > arr[pivot]) { rightArr.push(arr[j]); } else { leftArr.push(arr[j]); }; }; if (leftArr.length > 0 && rightArr.length > 0) { return [...quickSort(leftArr), pivot, ...quickSort(rightArr)]; } else if (leftArr.length > 0 && rightArr.length <= 0) { return [...quickSort(leftArr), pivot]; } else { return [pivot, ...quickSort(rightArr)]; }; }; console.log(quickSort(arr));

输出为: [20, 1, 2, 3, 4, 5, 6, 8, 22]

我的问题是:为什么我得到错误的输出以及如何解决这个问题?

这段代码有很多错误,但问题是将pivo t 添加到列表而不是arr[pivot]pivot是索引

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM