Я пытаюсь запустить рекурсивную быструю сортировку на массив со списком стран и их количество спортсменовQuicksort избавлении от ключей после сортировки
Например этот вход:
[Iran, Islamic Republic Of] => 38
[Italy] => 257
[Brazil] => 246
[Norway] => 114
[Algeria] => 17
[Bulgaria] => 65
[Malaysia] => 29
Я пытаясь отсортировать информацию от высшего к низшему, используя эту функцию:
function quicksort($array)
{
if (count($array) == 0) {
return array();
}
$pivot = array_shift($array); //Array_shift is getting rid of keys I need the keys to identify the numbers
$left = $right = array();
foreach($array as $key => $object){
if ($object > $pivot) {
$left[$key] = $object;
} else {
$right[$key] = $object;
}
}
return array_merge(quicksort($left), array($pivot), quicksort($right));
}
выход есть:
[2] => 520
[3] => 512
[4] => 482
[5] => 448
[6] => 417
[7] => 378
[8] => 357
Проблема в том, что я теряю ключи (страны), и у меня остались только значения каждой клавиши.
По какой-либо конкретной причине вы не используете одну из предоставленных функций сортировки? – Mario
Использовать [arsort()] (http://www.php.net/manual/en/function.arsort.php) –
Не могу ли я реализовать двоичную сортировку – user3211106