Рубрики
Uncategorized

PHP Реализует Выборочную Сортировку

Автор оригинала: David Wong.

Представил

В этой статье я расскажу о выборе и сортировке.

Сортировка выбора

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

Основное преимущество выборочной сортировки связано с перемещением данных. Если элемент находится в правильном конечном положении, он не будет перемещен. Выберите сортировка, чтобы поменять местами пару элементов за раз, и по крайней мере один из них будет перемещен в конечную позицию, поэтому список из n элементов будет отсортирован в общей сложности до N – 1 свопов. Среди всех методов сортировки, которые полностью основаны на замене для перемещения элементов, выборочная сортировка является очень хорошей.

Введение в Википедии. Пузырьковая сортировка и быстрая сортировка, представленные в первых двух главах, относятся к Методу сортировки движущихся элементов по обмену

Демонстрация динамического графика

Пример

php

$arr = [33, 24, 8, 21, 2, 23, 3, 32, 16];

function selectSort($arr)
{
    $count = count($arr);

    if ($count < 2) {
        return $arr;
    }

    for ($i = 0; $i < $count - 1; $i++) {
        // Location of the current value
        $key = $i;
        for ($k = $i + 1; $k < $count; $k++) {
            // Comparing adjacent values, the condition is established to replace the current value.
            // Reverse order $arr [$key] < $arr [$k]
            if ($arr[$key] > $arr[$k]) {
                $key = $k;
            }
        }

        if ($key != $i) {
            // Exchange position
            $temp = $arr[$key];
            $arr[$key] = $arr[$i];
            $arr[$i] = $temp;
        }
    }

    return $arr;
}

print_r(selectSort($arr));
// Array ( [0] => 2 [1] => 3 [2] => 8 [3] => 16 [4] => 21 [5] => 23 [6] => 24 [7] => 32 [8] => 33 )

Ссылка: Сортировка выбора, Сортировка выбора PHP.