массивы — сортировка вставки Кормана в php не работает

Алгоритм

for k from 2 to n
key = a[k]
j = k - 1

while (j > 0 and key > a[j])
a[j + 1] = a[j]
j = j - 1
end while

a[j + 1] = key
end for

мой код:

function insertionSort(array $array) {

$length=count($array);
for ($i=1;$i<$length;$i++) {
$element=$array[$i];
$j=$i-1;
while($j>0 && $array[$j]>$element) {

$array[$j+1]=$array[$j];
$j=$j-1;
}

$array[$j+1]=$element;
}
return $array;
}

выход:

Array (
[0] => 5
[1] => 6
[2] => 4
[3] => 3
[4] => 2
[5] => 1
)

Что я тут делаю не так, почему первый элемент не отсортирован?

0

Решение

Эй, пожалуйста, проверьте второе условие вашего цикла wile в вашем алгоритме и коде PHP, это может помочь вам …

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]