PHP 単純な選択並べ替えアルゴリズムの例、PHP アルゴリズムの例
シンプルな選択ソートアルゴリズム: キーワード間のn-i比較を通じて、n-i+1レコードから最小のキーワードを持つレコードを選択し、それをi番目(1
コードをコピーします コードは次のとおりです:
クラスソート{
/**
*簡易選択ソート
*
* @param 不明なタイプ $arr
*/
パブリック関数 selectSort(&$arr) {
$len=count($arr);
for ($i=0;$i<$len;$i++) {
$min=$i;
for ($j=$i+1;$j<=$len-1;$j++) {
If ($arr[$min]>$arr[$j]) {//$arr[$min] より小さい値が見つかった場合、添え字を $min に割り当てます
$min=$j;
}
}
If ($min!=$i){//$min が $i に等しくない場合、最小値が見つかったことを意味し、交換
$this->swap($arr[$i],$arr[$min]);
}
}
}
/**
* 2 つの値 $a と $b の位置を入れ替えます
*/
パブリック関数スワップ(&$a,&$b) {
$temp=$a;
$a=$b;
$b=$temp;
}
}
$arr=array(4,6,1,2,9,8,7,3,5);
$test=新しい並べ替え();
$test->selectSort($arr);//単純な選択ソート
// var_dump($arr);
?>
シンプルな選択ソートの特徴:モバイルデータの交換回数が非常に少ないため、対応する時間を節約できます
単純な選択ソートの時間計算量分析:
最良の場合でも最悪の場合でも、比較の数は同じです。i 番目の並べ替えでは、n-i 個のキーワードの比較が必要です。つまり、n(n-1)/2 個の比較が必要です。したがって、最終的な時間計算量は O(n^2) になります
バブル ソートと同様に O(n^2) ですが、それでも選択ソートのパフォーマンスはバブル ソートよりわずかに優れています。
http://www.bkjia.com/PHPjc/947915.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/947915.html技術記事 PHP 単純な選択ソート アルゴリズムの例、PHP アルゴリズムの単純な選択ソート アルゴリズムの例: キーワード間の n-i 比較を通じて、n-i+1 レコードから最小のキーワードを持つレコードを選択し、それを...