Сортировка чисел в TypeScript: изучение нескольких методов на примерах кода

Сортировка чисел — распространенная задача в программировании, и TypeScript предоставляет несколько методов и алгоритмов для эффективного выполнения этой задачи. В этой статье мы рассмотрим различные методы сортировки чисел в TypeScript, а также приведем примеры кода для каждого метода. Независимо от того, являетесь ли вы новичком или опытным разработчиком, это руководство поможет вам понять различные доступные подходы и выбрать наиболее подходящий для ваших конкретных требований.

  1. Array.prototype.sort()
    Метод Array.prototype.sort() — это встроенный метод JavaScript, который можно использовать для сортировки массивов чисел. Он работает путем преобразования элементов массива в строки и последующего сравнения их кодовых единиц UTF-16. Для числовой сортировки чисел необходимо предоставить функцию сравнения.
const numbers: number[] = [4, 2, 1, 3, 5];
numbers.sort((a, b) => a - b);
console.log(numbers); // Output: [1, 2, 3, 4, 5]
  1. Пузырьковая сортировка
    Пузырьковая сортировка – это простой алгоритм сортировки на основе сравнения, который многократно проходит по списку, сравнивает соседние элементы и меняет их местами, если они расположены в неправильном порядке. Процесс повторяется до тех пор, пока список не будет отсортирован.
function bubbleSort(numbers: number[]): number[] {
  const length = numbers.length;
  for (let i = 0; i < length - 1; i++) {
    for (let j = 0; j < length - 1 - i; j++) {
      if (numbers[j] > numbers[j + 1]) {
        [numbers[j], numbers[j + 1]] = [numbers[j + 1], numbers[j]];
      }
    }
  }
  return numbers;
}
const numbers: number[] = [4, 2, 1, 3, 5];
console.log(bubbleSort(numbers)); // Output: [1, 2, 3, 4, 5]
  1. Сортировка выбором
    Сортировка выбором — это еще один простой алгоритм сортировки, который работает путем многократного поиска минимального элемента в неотсортированной части массива и помещения его в начало.
function selectionSort(numbers: number[]): number[] {
  const length = numbers.length;
  for (let i = 0; i < length - 1; i++) {
    let minIndex = i;
    for (let j = i + 1; j < length; j++) {
      if (numbers[j] < numbers[minIndex]) {
        minIndex = j;
      }
    }
    [numbers[i], numbers[minIndex]] = [numbers[minIndex], numbers[i]];
  }
  return numbers;
}
const numbers: number[] = [4, 2, 1, 3, 5];
console.log(selectionSort(numbers)); // Output: [1, 2, 3, 4, 5]
  1. Быстрая сортировка
    Быстрая сортировка – это широко используемый алгоритм сортировки, основанный на принципе “разделяй и властвуй”. Он работает путем выбора опорного элемента из массива и разделения других элементов на два подмассива в зависимости от того, меньше они или больше опорного элемента. Затем подмассивы сортируются рекурсивно.
function quickSort(numbers: number[]): number[] {
  if (numbers.length <= 1) {
    return numbers;
  }
  const pivotIndex = Math.floor(numbers.length / 2);
  const pivot = numbers.splice(pivotIndex, 1)[0];
  const left = [];
  const right = [];
  for (const num of numbers) {
    if (num < pivot) {
      left.push(num);
    } else {
      right.push(num);
    }
  }
  return [...quickSort(left), pivot, ...quickSort(right)];
}
const numbers: number[] = [4, 2, 1, 3, 5];
console.log(quickSort(numbers)); // Output: [1, 2, 3, 4, 5]

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