ホームページ  >  記事  >  バックエンド開発  >  関数を使用しない PHP 配列のソート

関数を使用しない PHP 配列のソート

WBOY
WBOYオリジナル
2023-05-19 09:13:37549ブラウズ

PHP では、配列は複数の値を格納し、インデックスを通じてこれらの値にアクセスできる一般的なデータ型です。配列を並べ替える必要がある場合、通常は、sort()、rsort()、asort() などの PHP の組み込み関数を使用します。これらの関数を使用すると、配列を簡単に並べ替えることができます。

ただし、場合によっては、sort 関数を使用せずに配列を並べ替える必要がある場合があります。これは次の状況で発生する可能性があります。

  1. sort 関数のコールバック関数を使用した配列のカスタム並べ替えは非効率的です。
  2. コードの可読性とパフォーマンスを向上させるために、PHP 組み込み関数の使用を避けたい。

では、この場合、PHP で配列を並べ替えるにはどうすればよいでしょうか?この記事では、ネイティブ PHP 言語に基づいた配列の並べ替え方法をいくつか紹介します。

  1. バブル ソート

バブル ソートは、隣接する要素を比較および交換することによって配列を並べ替える基本的な並べ替えアルゴリズムです。

function array_bubble_sort($arr){
    $len=count($arr);
    for($i=0;$i<$len-1;$i++){
        for($j=0;$j<$len-1-$i;$j++){
            if($arr[$j]>$arr[$j+1]){
                $temp=$arr[$j+1];
                $arr[$j+1]=$arr[$j];
                $arr[$j]=$temp;
            }
        }
    }
    return $arr;
}

上記のコードでは、2 つの for ループを使用しています。外側のループは比較の数を制御し、内側のループは隣接する要素の比較と交換に使用されます。このようにして、sort 関数を使用せずに配列を並べ替えることができます。

  1. 挿入ソート

挿入ソートは、ソートされた配列に各要素を 1 つずつ挿入することによって、配列に対する操作を実行できる、シンプルで効果的なソート アルゴリズムです。

function array_insertion_sort($arr){
    $len=count($arr);
    for($i=1;$i<$len;$i++){
        $temp=$arr[$i];
        $j=$i-1;
        while($j>=0&&$arr[$j]>$temp){
            $arr[$j+1]=$arr[$j];
            $j--;
        }
        $arr[$j+1]=$temp;
    }
    return $arr;
}

上記のコードでは、for ループと while ループを使用しています。for ループは挿入する要素の選択に使用され、while ループは挿入に使用されます。正しい位置に差し込みます。また、この方法では、sort 関数を使用せずに配列を並べ替えることができます。

  1. クイック ソート

クイック ソートは、配列を 2 つのサブ配列に分割して並べ替える、一般的に使用される並べ替えアルゴリズムです。具体的な実装は次のとおりです。

function array_quick_sort($arr){
    $len=count($arr);
    if($len<=1){
        return $arr;
    }
    $pivot=$arr[0];
    $left=[];
    $right=[];
    for($i=1;$i<$len;$i++){
        if($arr[$i]<=$pivot){
            $left[]=$arr[$i];
        }else{
            $right[]=$arr[$i];
        }
    }
    return array_merge(array_quick_sort($left),[$pivot],array_quick_sort($right));
}

上記のコードでは、再帰を使用してクイック ソートを実装しています。まず、ピボット要素をピボットとして選択し、配列を反復処理して、小さい要素を左側の部分配列に、大きい要素を右側の部分配列に配置します。次に、再帰によって左右の部分配列を並べ替え、最後にそれらをマージします。基本要素を使用します。同様に、sort 関数を使用せずに配列を並べ替えることもできます。

概要

上記の 3 つの並べ替えアルゴリズムは、並べ替え関数を使用せずに PHP 配列を並べ替えることができます。これらのアルゴリズムは PHP の組み込みソート関数ほど効率的ではないかもしれませんが、コードの読みやすさと理解を向上させることができます。カスタムの並べ替え方法が必要な場合、または PHP 組み込み関数の使用を避ける場合は、これらのアルゴリズムを使用して配列を並べ替えてみてください。

以上が関数を使用しない PHP 配列のソートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。