кодесурса
«PHP

Упражнения с массивом PHP: сортировка массива натуральных чисел с использованием алгоритма сортировки по бисеру

script1adsense2code
script1adsense3code

PHP Array: упражнение 10 с решением

Напишите программу PHP для сортировки массива натуральных чисел с использованием алгоритма сортировки по бисеру.

Согласно Википедии, «сортировка по бисеру - это естественный алгоритм сортировки, разработанный Джошуа Дж. Аруланандхамом, Кристианом С. Калудом и Майклом Дж. Диннином в 2002 году. Как в цифровой, так и в аналоговой аппаратной реализации сортировки по бисеру можно достичь времени сортировки O (n ), однако реализация этого алгоритма, как правило, значительно медленнее в программном обеспечении и может использоваться только для сортировки списков натуральных чисел ".

Входной массив : массив ([0] => 5 [1] => 3 [2] => 1 [3] => 3 [4] => 8 [5] => 7 [6] => 4 [7] => 1 [8] => 1 [9] => 3)

Пример решения:

<?php
function columns($uarr)
{
$n=$uarr;
if (count($n) == 0)
 return array();
else if (count($n) == 1)
 return array_chunk($n[0], 1);
array_unshift($uarr, NULL);
 $transpose = call_user_func_array('array_map', $uarr);
return array_map('array_filter', $transpose);
}
function bead_sort($uarr)
{
foreach ($uarr as $e)
 $poles []= array_fill(0, $e, 1);
return array_map('count', columns(columns($poles)));
}
echo 'Original Array : '.'
';
print_r(array(5,3,1,3,8,7,4,1,1,3));
echo '
'.'After Bead sort : '.'
';
print_r(bead_sort(array(5,3,1,3,8,7,4,1,1,3)));
?>

Пример вывода:

 Оригинальный массив:                                            
массив                                                       
(                                                           
    [0] => 5                                                
    [1] => 3                                                
    [2] => 1                                                
    [3] => 3                                                
    [4] => 8                                                
    [5] => 7                                                
    [6] => 4                                                
    [7] => 1                                                
    [8] => 1                                                
    [9] => 3                                                
)                                                           
                                                            
После сортировки из бисера:                                           
массив                                                       
(                                                            
    [0] => 8                                                
    [1] => 7                                                
    [2] => 5                                                
    [3] => 4                                                
    [4] => 3                                                
    [5] => 3                                                
    [6] => 3                                                
    [7] => 1                                                
    [8] => 1                                                
    [9] => 1                                                
) 

Блок - схема:

«Блок-схема:

Редактор кода PHP:

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите PHP-скрипт для расчета и отображения средней температуры, пяти самых низких и самых высоких температур.
Далее: написать программу PHP для объединения (по индексу) указанных двух массивов.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code