function qsort(a) {
if (a.length == 0) return [];
var left = [], right = [], pivot = a[0];
for (var i = 1; i < a.length; i++) {
a[i] < pivot ? left.push(a[i]) : right.push(a[i]);
}
return qsort(left).concat(pivot, qsort(right));
}
Почему приведенный выше алгоритм QuickSort намного медленнее , чем собственный метод array.sort ()?
var array = Array.from({
length: 100000
}, () => Math.floor(Math.random() * 100));
array.slice(0).sort((a,b) => a-b); // 34ms
qsort(array) // 2436ms