在 Javascript 中实施快速排序

Implementing Quicksort in Javascript

我的最终目标是在 html5 canvas 中使用移动块演示快速排序算法。我遇到的问题是在递归调用时在每个阶段显示快速排序。我一直在尝试在末尾调整 return 排序数组的算法,但我需要能够在排序时绘制出数组,以便用户可以看到它是如何工作的。

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