PHPのソートアルゴリズム

WBOY
リリース: 2016-06-23 14:31:12
オリジナル
951 人が閲覧しました

はじめに: これは、PHP ソート アルゴリズムの詳細ページであり、PHP に関連する知識、スキル、経験、およびいくつかの PHP ソース コードを紹介します。

class='pingjiaF' Frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=339153'scroll='no'>

以下が小さいものから大きいものへソートされていると仮定します。 :

1. バブルソート (安定ソート)

個人的な理解: バブルソートは、小さなループの中に大きなループがあり、先頭または末尾から始まる 2 つの連続する要素のサイズを比較します。独自の並べ替え基準 (小さいものから大きいもの、または大きいものから小さいもの) を満たすと、その値が交換されます。

function bubble_sort($array){

$count=count($array);

for($i=0;$i<$count;$i++){

for($j=$count-1) ;$j>$i;$j--){

if($array[$j]<$array[$j-1]){// 次の値が前の要素より小さい場合、 value

$ Temp = $ array [$ j];

$ array [$ j] = $ array [$ j-1];

}

2. クイックソート (配列ソートとも呼ばれます) )

個人的な理解: ソート対象の配列内でキー データ (標準値) を見つけます。通常は配列の最初の要素です。それをキー データとして扱い、配列をループし、要素の値とキー データを順番に比較します。 2 番目の要素から開始します。キー データより小さい場合は、要素をキー値の左側に配置します。キー データが許可されている場合は、要素をキー データの右側に配置します。キー値の左側を配列として、右側の要素も同様に取得し、それぞれ上記のソートを実行すると、配列をマージした後、結果の配列とキーデータが正常にソートされます

function Quick_sort($)。 array){

$ count=count($array);

if($count<=1) retrun $array; //配列の要素が 1 つしかない場合、または空の場合は、ソートせずに配列を直接返します

$ key=$array[0 ]; //配列の最初の要素をキーデータとして設定します

$left_arr=array();

$right_ar=array();

for($i=1;$i< ;$count;$i++) {

if($array[$i]<=$key)

$left_arr[]=$array[$i];

else

$right_arr[]=$array [$i];

}

$left_arr=quick_sort($left_arr);

$right_arr=quick_sort($right_arr);

//マージされた配列を返す

return array_merge($left_arr,array($key) ),$right_arr);

}

3. 選択ソート(不安定ソート)

個人的な理解:選択ソートとは、ソートする配列の中で最も小さい値を選択し、最初の要素と値を交換することです。残りの要素の中から最小の値を選択します。その値は 2 番目の要素と交換され、最後から 2 番目の要素が最後の要素と比較されるまでループが続きます。

function select_sort($array){

$count=count($array);

if($count<=1) return $array;

for($i=0;$i<$count-1) ;$i++){

$min=$array[$i]; //現在の要素が最小であると仮定し、比較後に調整します

for($j=$i+1;$j<$ count;$j++) {

if($array[$j]<$min){

$min=$array[$j];

//要素のキーを記憶する;このときの最小値で 次に

}

}

if($min!=$array[$i]){ //ループ内でminが変わった場合はデータのやり取りが必要

$temp= $array[$i]; 。 。 。 。笑

J2EE が大好きで、Java Michael Jackson Video Station JSON オンライン ツールをフォローしてください

http://biancheng.dnbcw.info/php/339153.html pageNo:8

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート