Алгоритм поиска и сортировки PHP: Bogo sort
Алгоритм поиска и сортировки PHP: упражнение 14 с решением
Напишите программу PHP для сортировки списка элементов, используя сортировку Bogo.
В информатике bogosort - это особенно неэффективный алгоритм сортировки, основанный на парадигме генерации и тестирования. Алгоритм последовательно генерирует перестановки своего ввода, пока не найдет отсортированный. Это не полезно для сортировки, но может использоваться в образовательных целях, чтобы противопоставить его другим более реалистичным алгоритмам.
Пример решения:
PHP-код:
<?php
function issorted($list)
{
$cnt = count($list);
for($j = 1; $j < $cnt; $j++)
{
if($list[$j-1] > $list[$j])
{
return false;
}
}
return true;
}
function bogo_sort($list)
{
do
{
shuffle($list);
}
while(!issorted($list));
return $list;
}
$test_array = array(100, 0, 2, 5, -1, 4, 1);
echo "\nOriginal Array :\n";
echo implode(', ',$test_array );
echo "\nSorted Array :\n";
echo implode(', ',bogo_sort($test_array)). PHP_EOL;
?>
Пример вывода:
Оригинальный массив: 100, 0, 2, 5, -1, 4, 1 Сортированный массив: -1, 0, 1, 2, 4, 5, 100
Блок-схема:
Редактор кода PHP:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу PHP для сортировки списка элементов с помощью сортировки по бисеру.
Далее: Напишите программу PHP для сортировки списка элементов с использованием сортировки Strand.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования