PHP実装挿入ソート
ガイド人
ソートのアルゴリズムについては,これで一段落する.バブルソート、クイックソート、選択ソート、本編の挿入ソートの4つのアルゴリズムは比較的簡単で、理解しやすい.もっと複雑なアルゴリズムは、人の子弟を誤らないように、恥をかかないようにします.
ソートの挿入
挿入ソート(英語:Insertion Sort)は、単純で直感的なソートアルゴリズムです.秩序化されたシーケンスを構築し、並べ替えられていないデータに対して、並べ替えられたシーケンスを後方から前方にスキャンし、対応する位置を見つけて挿入することが原理です.挿入ソートは実装上、通常はin-placeソート(すなわち、O(1)の余分な空間のソートにのみ使用される)を採用するため、後から前へスキャンする過程で、ソートされた要素を徐々に後ろにシフトし、最新の要素に挿入空間を提供する必要がある.
一般に,挿入ソートはin−placeを用いて配列上で実現される.具体的なアルゴリズムは以下の通りである.は第1の要素から始まり、この要素は に並べ替えられたと考えられる.は次の要素を取り出し、並べ替えられた要素のシーケンスにおいて を後方から前方に走査する.新しい要素より大きい場合は、次の位置 に移動します.は、順序付けされた要素が新しい要素より小さいまたは等しい位置 が見つかるまで、ステップ3を繰り返す.この位置に新しい要素を挿入した後の .手順2~5 を繰り返す.
ウィキペディアからの紹介です.ポイントは手順2~5です.
動図デモ
≪インスタンス|Instance|emdw≫
参考資料:挿入ソート、PHPソートアルゴリズムシリーズ:挿入ソート.
ソートのアルゴリズムについては,これで一段落する.バブルソート、クイックソート、選択ソート、本編の挿入ソートの4つのアルゴリズムは比較的簡単で、理解しやすい.もっと複雑なアルゴリズムは、人の子弟を誤らないように、恥をかかないようにします.
ソートの挿入
挿入ソート(英語:Insertion Sort)は、単純で直感的なソートアルゴリズムです.秩序化されたシーケンスを構築し、並べ替えられていないデータに対して、並べ替えられたシーケンスを後方から前方にスキャンし、対応する位置を見つけて挿入することが原理です.挿入ソートは実装上、通常はin-placeソート(すなわち、O(1)の余分な空間のソートにのみ使用される)を採用するため、後から前へスキャンする過程で、ソートされた要素を徐々に後ろにシフトし、最新の要素に挿入空間を提供する必要がある.
一般に,挿入ソートはin−placeを用いて配列上で実現される.具体的なアルゴリズムは以下の通りである.
ウィキペディアからの紹介です.ポイントは手順2~5です.
動図デモ
≪インスタンス|Instance|emdw≫
= 0; $k--) {
// , ,
// $temp > $arr[$k]
if ($temp < $arr[$k]) {
$arr[$k + 1] = $arr[$k];
$arr[$k] = $temp;
}
}
}
return $arr;
}
print_r(insertSort($arr));
// Array ( [0] => 2 [1] => 3 [2] => 8 [3] => 16 [4] => 21 [5] => 23 [6] => 24 [7] => 32 [8] => 33 )
参考資料:挿入ソート、PHPソートアルゴリズムシリーズ:挿入ソート.