hydra_13
@hydra_13
Пограммист - любитель)

Что это за сортировка (JS)?

Приветствую!
Пытался сделать быструю сортировку (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 ]


Вопрос: какого вида сортировка была реализована в моем случае?
  • Вопрос задан
  • 163 просмотра
Пригласить эксперта
Ответы на вопрос 2
longclaps
@longclaps
не особо разобравшись в ее теории
Это звучит забавно.
Да, это быстрая сортировка в её игрушечном варианте и даже чуть хуже (есть избыточная проверка).
Неигрушечный вариант экономней по памяти, но требует аккуратной работы с индексами.
Ответ написан
virtual_hack2root
@virtual_hack2root
.NET Core, JS, DevOps
Это сортировка слиянием (Merge Sort)

Пример на Python

https://studlearn.com/works/details/sortirovka-sli...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы