Приветствую!
Пытался сделать быструю сортировку (quick sort) не особо разобравшись в ее теории, понял что не совсем верный подход использовал. Вот код:
const inputArray = [7, 4, 2, 8, 6, 1, 0, 9, 5, 3];
//my version
function sort(arr) {
if (arr.length < 2) {
return arr;
}
const baseElIndex = Math.floor(arr.length / 2);
const baseElValue = arr[baseElIndex];
const arrMin = [];
const arrSame = [];
const arrMax = [];
arr.forEach(item => {
if (item == baseElValue) {
arrSame.push(item);
} else if (item < baseElValue) {
arrMin.push(item);
} else if (item > baseElValue) {
arrMax.push(item);
}
});
return sort(arrMin)
.concat(arrSame)
.concat(sort(arrMax));
}
console.log(sort(inputArray));
Вывод:
> node .\sort.js
[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
Вопрос:
какого вида сортировка была реализована в моем случае?