Быстрая сортировка в исполнении javascript - PullRequest
0 голосов
/ 24 мая 2018
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

1 Ответ

0 голосов
/ 24 мая 2018

Хорошо, нативный метод не создает и не изменяет массивы рекурсивным способом в javascript.

...