我的最终目标是使用 html5 Canvas 中的移动 block 演示快速排序算法。我遇到的问题是在每个阶段显示快速排序,因为它是递归调用的。我一直在尝试调整的算法在最后返回排序后的数组,但我需要能够在排序后取出数组,以便用户可以看到它是如何工作的。
function quickSort (arr) {
if (!arr.length)
return arr
var pivot = arr.splice(0, 1)
var less = []
var greater = []
arr.forEach(function (el) {
if (el <= pivot)
less.push(el)
else
greater.push(el)
})
return quickSort(less).concat(pivot, quickSort(greater))
}
var sorted = quickSort(bars2)
console.log('sorted', sorted)
任何人都可以提供有关如何做到这一点的任何想法吗?
最佳答案
也许您正在寻找类似的东西,sorting algorithms visualized .
这里有一个实现,如果您想做类似的事情,可以修改它,Quick sort implementation .
关于javascript - 在 Javascript 中实现快速排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41063025/