Baidu 百科事典の挿入ソートの PHP バージョンは次のとおりです:
うわー
とてもぎこちないので、ロバート セジウィック著の「アルゴリズム」をひっくり返しました。はすべて Java で実装されています。 ここでは、挿入ソートを PHP で書き直しています:
1 function insert_sort($arr) { 2 // 将$arr升序排列 3 $count = count($arr); 4 for ($i=1; $i<$count; $i++) { 5 $tmp = $arr[$i]; 6 $j = $i - 1; 7 while ($j >=0 && $arr[$j] > $tmp) { 8 $arr[$j+1] = $arr[$j]; 9 $j--;10 }11 if (($j+1) != $i) {12 $arr[$j+1] = $tmp; 13 }14 }15 return $arr;16 }
「アルゴリズム」に書かれていることと同じように、2 番目の書き方の方が理解しやすいと思います: 挿入ソートはポーカー プレーヤーのようなものです。同じようにカードを配置し、ソートされた他のカードの適切な位置に各カードを挿入します。さらに、Baidu は Blog Park で Frank Fan の記事挿入ソートも発見しました。こちらもご覧ください。