javascript - 在 Javascript 中实现快速排序

标签 javascript html canvas quicksort

我的最终目标是使用 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/

相关文章:

javascript - 如何将 Observable 流转换为 Observable 数组

javascript - Django Inlineformset - 基于第二个下拉菜单的 JQuery 下拉菜单

javascript - 在javascript中计算网页完全加载的元素

html - 尝试在 Bootstrap 页脚中的文本下方创建几个链接

javascript - 使用 EaselJS 围绕 Canvas 构建坐标系

javascript - 在我的 JS Pong 游戏中无法击球

javascript - 单击时更改 ng-src 值

html - 如何在所有@objects(不是每个对象)周围放置边框?

javascript - 确定在 html5 canvas javascript 中点击了屏幕上的哪个对象?

javascript - 如何将rails响应头设置为json?