在 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。
我的最终目标是在 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。