Алгоритм поиска и сортировки PHP: быстрая сортировка
Алгоритм поиска и сортировки PHP: упражнение-1 с решением
Напишите программу PHP для сортировки списка элементов с помощью быстрой сортировки.
Быстрая сортировка - это сортировка сравнения, это означает, что она может сортировать элементы любого типа, для которых определено отношение «меньше чем» (формально, общий порядок).
Наглядная презентация - алгоритм быстрой сортировки:
Анимированная визуализация алгоритма быстрой сортировки. Горизонтальные линии являются опорными значениями.
Анимационные кредиты: RolandH
Пример решения:
PHP-код:
<?php
function quick_sort($my_array)
{
$loe = $gt = array();
if(count($my_array) < 2)
{
return $my_array;
}
$pivot_key = key($my_array);
$pivot = array_shift($my_array);
foreach($my_array as $val)
{
if($val <= $pivot)
{
$loe[] = $val;
}elseif ($val > $pivot)
{
$gt[] = $val;
}
}
return array_merge(quick_sort($loe),array($pivot_key=>$pivot),quick_sort($gt));
}
$my_array = array(3, 0, 2, 5, -1, 4, 1);
echo 'Original Array : '.implode(',',$my_array).'\n';
$my_array = quick_sort($my_array);
echo 'Sorted Array : '.implode(',',$my_array);
?>
Пример вывода:
Исходный массив: 3,0,2,5, -1,4,1 Sorted Array: -1,0,1,2,3,4,5
Блок-схема:
Редактор кода PHP:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущая: Упражнения по алгоритму поиска и сортировки PHP Home.
Далее: Напишите программу PHP для сортировки списка элементов, используя сортировку кучи.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования