算法
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
)
我在这里做错了什么,为什么第一个元素没有排序?
嘿,请检查你的算法和PHP代码中的while循环的第二个条件,它可能会帮助你…