Стабильная сортировка с использованием массивов JavaScript

JavaScriptJavaScriptBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабе мы будем изучать концепцию стабильной сортировки в JavaScript. Стабильная сортировка - это техника, которая сохраняет порядок элементов в массиве, когда их значения совпадают. Мы будем использовать функцию, которая использует методы Array.prototype.map() и Array.prototype.sort(), чтобы реализовать стабильную сортировку массива.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28623{{"Стабильная сортировка с использованием массивов JavaScript"}} javascript/data_types -.-> lab-28623{{"Стабильная сортировка с использованием массивов JavaScript"}} javascript/arith_ops -.-> lab-28623{{"Стабильная сортировка с использованием массивов JavaScript"}} javascript/comp_ops -.-> lab-28623{{"Стабильная сортировка с использованием массивов JavaScript"}} javascript/higher_funcs -.-> lab-28623{{"Стабильная сортировка с использованием массивов JavaScript"}} end

Стабильная сортировка

Для выполнения стабильной сортировки массива и сохранения исходных индексов элементов с одинаковыми значениями следуйте шагам:

  1. Откройте Терминал/SSH и введите node, чтобы начать практиковать программирование.
  2. Используйте Array.prototype.map(), чтобы сопоставить каждый элемент входного массива с его соответствующим индексом.
  3. Используйте Array.prototype.sort() вместе с функцией compare, чтобы отсортировать список, сохраняя исходный порядок, если сравниваемые элементы равны.
  4. Используйте Array.prototype.map() снова, чтобы преобразовать элементы массива обратно в их исходную форму.
  5. Исходный массив не изменяется, вместо этого возвращается новый массив.

Вот реализация функции stableSort на JavaScript:

const stableSort = (arr, compare) =>
  arr
    .map((item, index) => ({ item, index }))
    .sort((a, b) => compare(a.item, b.item) || a.index - b.index)
    .map(({ item }) => item);

Вы можете вызвать функцию stableSort с массивом и функцией compare, чтобы получить новый массив с отсортированными элементами, как показано ниже:

const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const stable = stableSort(arr, () => 0); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Резюме

Поздравляем! Вы завершили лабу по Стабильной сортировке. Вы можете практиковать в LabEx более лаб, чтобы улучшить свои навыки.