ホームページ >バックエンド開発 >PHPの問題 >PHP で一般的に使用される並べ替え方法 (アルゴリズム) について話しましょう

PHP で一般的に使用される並べ替え方法 (アルゴリズム) について話しましょう

PHPz
PHPzオリジナル
2023-03-24 15:22:111530ブラウズ

PHP は重要なプログラミング言語として、実際に多くの面で優れたパフォーマンスを発揮します。データ処理において、並べ替えアルゴリズムは最も一般的で重要な部分です。 PHP にはさまざまな並べ替えアルゴリズムが用意されています。以下では、PHP で一般的に使用される並べ替え方法について詳しく説明します。

  1. バブル ソート

バブル ソートは、PHP の最も古典的な並べ替えアルゴリズムの 1 つです。このアルゴリズムは、隣接する 2 つの要素のサイズを走査して比較し、順序を継続的に交換することによって並べ替えを完了します。このメソッドは、for ループまたは while ループを使用して実装できます。

<?php
function bubble_sort($arr){
    $length = count($arr);
    for($i=0;$i<$length;$i++){
        for($j=$i+1;$j<$length;$j++){
            if($arr[$i]>$arr[$j]){
                $tmp = $arr[$i];
                $arr[$i] = $arr[$j];
                $arr[$j] = $tmp;
            }
        }
    }
    return $arr;
}
  1. クイック ソート

クイック ソートは、PHP で最も高速なソート アルゴリズムの 1 つです。このアルゴリズムは、再帰的方法を使用して配列を 2 つの部分に分割し、一度に 1 つのピボット要素を使用して配列をより小さいサブ配列とより大きいサブ配列に分割します。その後、部分配列が再帰的に継続的にソートされ、最終的にソートされた配列が取得されます。

PHP でクイック ソートを実装するには、再帰的メソッドや非再帰的メソッドなど、さまざまな方法があります。

<?php
function quick_sort($arr){
    $length = count($arr);
    if($length<=1){
        return $arr;
    }
    $left_array = array();
    $right_array = array();
    $middle = $arr[0];
    for($i=1;$i<$length;$i++){
        if($arr[$i]<$middle){
            $left_array[] = $arr[$i];
        }else{
            $right_array[] = $arr[$i];
        }
    }
    $left_array = quick_sort($left_array);
    $right_array = quick_sort($right_array);
    return array_merge($left_array, array($middle), $right_array);
}
  1. 選択ソート

選択ソートは、PHP のもう 1 つの古典的な並べ替えアルゴリズムです。このアルゴリズムは、配列内の最小の要素を見つけて配列の先頭に配置し、残りの要素に対して同じことを行うことによって機能します。このアルゴリズムの時間計算量は O(n²) です。

<?php
function select_sort($arr){
    $length = count($arr);
    for($i=0;$i<$length;$i++){
        $min = $i;
        for($j=$i+1;$j<$length;$j++){
            if($arr[$j]<$arr[$min]){
                $min = $j;
            }
        }
        if($min!=$i){
            $tmp = $arr[$i];
            $arr[$i] = $arr[$min];
            $arr[$min] = $tmp;
        }
    }
    return $arr;
}
  1. 挿入ソート

挿入ソートは、PHP のもう 1 つの単純な並べ替えアルゴリズムです。このアルゴリズムは、現在の要素のサイズと位置を以前に並べ替えられた要素と比較し、その要素を適切な位置に挿入します。このアルゴリズムの時間計算量は O(n²) です。

<?php
function insert_sort($arr){
    $length = count($arr);
    for($i=1;$i<$length;$i++){
        $tmp = $arr[$i];
        $j = $i-1;
        while($j>=0 && $arr[$j]>$tmp){
            $arr[$j+1] = $arr[$j];
            $j--;
        }
        $arr[$j+1] = $tmp;
    }
    return $arr;
}

概要:

上記の 4 つの並べ替え方法は、PHP の一般的な並べ替えアルゴリズムです。実際のアプリケーションでは、少量のデータをソートする場合は選択ソートと挿入ソートが一般的に使用され、データ サイズが小さい場合はバブル ソートがより一般的に使用され、データ サイズが大きい場合はクイック ソートが最も一般的に使用されるソート アルゴリズムです。開発者は、実際の状況に基づいて適切な並べ替えアルゴリズムを選択できます。

以上がPHP で一般的に使用される並べ替え方法 (アルゴリズム) について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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