ホームページ  >  記事  >  バックエンド開発  >  挿入ソートを実装するための PHP コード例

挿入ソートを実装するための PHP コード例

不言
不言転載
2019-01-29 11:25:582356ブラウズ

この記事では、挿入ソートの PHP 実装に関するコード例を紹介します。一定の参考価値があります。必要な友人は参照してください。お役に立てば幸いです。

これで、並べ替えアルゴリズムに関する説明は終わりです。この記事では、バブル ソート、クイック ソート、選択ソート、および挿入ソート、これら 4 つのアルゴリズムは比較的シンプルで理解しやすいものです。他の人を誤解させないように、より複雑なアルゴリズムは誇張しません。

挿入ソート

挿入ソート (英語: Insertion Sort) は、シンプルで直感的な並べ替えアルゴリズムです。これは、順序付けされたシーケンスを構築することで機能し、並べ替えられていないデータの場合は、並べ替えられたシーケンス内で後ろから前にスキャンし、対応する位置を見つけて挿入します。挿入ソートの実装では、通常、インプレース ソート (つまり、O(1) 個の余分なスペースのみを使用するソート) が使用されます。そのため、後から前へのスキャン プロセス中に、ソートされた要素を繰り返し、徐々に行う必要があります。後方にシフトされ、最新の要素の挿入スペースが提供されます。

一般的に、挿入ソートはインプレースを使用して配列に実装されます。具体的なアルゴリズムは次のとおりです:

1. 最初の要素から開始して、要素はソートされたとみなすことができます

2. 次の要素を取り出し、後方から順に進みますソートされた要素のシーケンス。事前スキャン

3. (ソートされた) 要素が新しい要素より大きい場合、要素を次の位置に移動します。

4. ステップを繰り返します。新しい要素の位置

##5 以下の並べ替えられた要素が見つかるまで 3 を繰り返します。新しい要素を

#6 の位置に挿入した後、手順 2 ~ 5# を繰り返します。

##ウィキペディアからの紹介。ステップ 2 ~ 5 に焦点を当てます。

アニメーション デモンストレーション

挿入ソートを実装するための PHP コード例

挿入ソートを実装するための PHP コード例

#例

<?php $arr = [33, 24, 8, 21, 2, 23, 3, 32, 16];

function insertSort($arr)
{
    $count = count($arr);

    if ($count < 2) {
        return $arr;
    }

    for ($i = 1; $i < $count; $i++) {
        // 当前值
        $temp = $arr[$i];
        for ($k = $i - 1; $k >= 0; $k--) {
            // 条件成立,比较值后挪一位,将当前值替换成比较值
            // 倒序 $temp > $arr[$k]
            if ($temp  2 [1] => 3 [2] => 8 [3] => 16 [4] => 21 [5] => 23 [6] => 24 [7] => 32 [8] => 33 )

以上が挿入ソートを実装するための PHP コード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。