ホームページ >バックエンド開発 >PHPチュートリアル >PHPの単純な選択ソートアルゴリズムの学習
この記事では、主に PHP の単純選択ソート アルゴリズムを詳しく紹介します。これには一定の参考値があります。興味のある友人は参照してください。
この記事の例は、あなたと共有されます。PHP の特定のコード単純な選択ソートは参考までに具体的な内容は次のとおりです
基本的な考え方:
キーワード間の n - i の比較を通じて、n - でレコードを選択しますi 1 個のレコードの中から最小のキーワードを取り出して、i (1
アルゴリズムの実装:
<?php //简单选择排序 //交换函数 function swap(array &$arr,$a,$b){ $temp = $arr[$a]; $arr[$a] = $arr[$b]; $arr[$b] = $temp; } //简单选择排序算法 function SelectSort(array &$arr){ $count = count($arr); for($i = 0;$i < $count - 1;$i ++){ //记录第$i个元素后的所有元素最小值下标 $min = $i; for($j = $i + 1;$j < $count;$j ++){ if($arr[$j] < $arr[$min]){ $min = $j; } } if($min != $i){ swap($arr,$min,$i); } } } $arr = array(9,1,5,8,3,7,4,6,2); SelectSort($arr); var_dump($arr);
##複雑さの分析:
シンプルな選択ソートプロセスにより、移動されるレコードが少なくなります。最良の場合、つまり、並べ替えられるレコードの初期状態はすでに正の順序になっており、レコードを移動する必要はありません。 最悪の場合、つまり、ソート対象のレコードの初期状態では、最初のレコードが最も大きく、後続のレコードが昇順に配置され、ソートする必要があるレコードの数が減ります。 move は最大 3 (n-1) です。単純選択ソート時に必要な比較回数は、初期状態でのソート対象のレコード列の配置とは関係ありません。 i=1 の場合は n-1 回の比較が必要、i=2 の場合は n-2 回の比較が必要、というように、必要な比較の合計数は (n-1) (n-2) ... 2 1 となります。 =n(n-1)/2、つまり、比較演算の時間計算量は O(n^2)、移動演算の時間計算量は O(n) です。 単純な選択ソートは不安定なソートです。 このブログは「Dahua Data Structure」から参照されています。将来の参考のためにここに記録されているだけです。批判しないでください。 以上がこの記事の全内容です、皆様の学習に少しでもお役に立てれば幸いです、またphp中国語サイトも応援していただければ幸いです。#興味があるかもしれない記事:
WeChat Tiaoyitiao PHP コード実装の詳細な説明
# #WeChatのMomentsへの共有とphpで実装された共有機能の数の記録の説明
以上がPHPの単純な選択ソートアルゴリズムの学習の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。