Сортировка стала проще: изучение сортировки вставками в PHP

Сортировка — фундаментальная операция в информатике, играющая решающую роль в различных приложениях. В этой статье блога мы углубимся в один из самых простых и интуитивно понятных алгоритмов сортировки, который называется «Сортировка вставками». Мы рассмотрим концепцию сортировки вставками, предоставим простые для понимания примеры кода на PHP и обсудим ее плюсы и минусы. Итак, давайте начнем и упростим сортировку!

Понимание сортировки вставками.
Сортировка вставками — это алгоритм, который работает путем многократной вставки элемента в его правильную позицию в отсортированном подмассиве. Все начинается с предположения, что первый элемент уже отсортирован. Затем он перебирает оставшиеся неотсортированные элементы, сравнивая каждый элемент с отсортированным подмассивом и вставляя его в нужное положение.

Пример кода 1: базовая реализация сортировки вставками

function insertionSort($array) {
    $length = count($array);

    for ($i = 1; $i < $length; $i++) {
        $key = $array[$i];
        $j = $i - 1;

        while ($j >= 0 && $array[$j] > $key) {
            $array[$j + 1] = $array[$j];
            $j = $j - 1;
        }

        $array[$j + 1] = $key;
    }

    return $array;
}
// Usage
$unsortedArray = [5, 2, 8, 9, 1];
$sortedArray = insertionSort($unsortedArray);
print_r($sortedArray);

Пример кода 2: сортировка вставками с оптимизацией

function insertionSort($array) {
    $length = count($array);

    for ($i = 1; $i < $length; $i++) {
        $key = $array[$i];
        $j = $i - 1;

        while ($j >= 0 && $array[$j] > $key) {
            $array[$j + 1] = $array[$j];
            $j = $j - 1;
        }

        $array[$j + 1] = $key;
    }

    return $array;
}
// Usage
$unsortedArray = [5, 2, 8, 9, 1];
$sortedArray = insertionSort($unsortedArray);
print_r($sortedArray);

Оптимизация сортировки вставками.
Хотя сортировка вставками не является наиболее эффективным алгоритмом сортировки для больших наборов данных, существует несколько методов оптимизации ее производительности. Некоторые из распространенных подходов включают в себя:

  1. Двоичный поиск: вместо линейного поиска правильной позиции вы можете использовать двоичный поиск, чтобы уменьшить количество сравнений.

  2. Контрольное значение: добавив контрольное значение в начало массива, вы можете избежать проверки границ и упростить код.

  3. Сортировка Шеллом. Сортировка Шеллом улучшает сортировку вставками, сортируя элементы, расположенные далеко друг от друга, перед сортировкой соседних элементов.

Сортировка вставками – это простой и простой в реализации алгоритм сортировки, что делает его отличным выбором для небольших наборов данных или в ситуациях, когда простота предпочтительнее эффективности. Мы изучили концепцию сортировки вставками, предоставили примеры кода на PHP и обсудили методы оптимизации. Не забудьте учитывать размер вашего набора данных и конкретные требования вашего приложения при выборе алгоритма сортировки. Удачной сортировки!