この記事では主に、配列ソートを実装するためのPHP選択ソートメソッドの方法を紹介します。サンプルでは、選択ソートの原理と具体的な実装手順を分析します。友達が必要です
この記事では、PHP の選択ソートメソッドを使用して配列ソートを実装する方法を分析します。皆さんの参考に共有してください。具体的な分析は次のとおりです:
選択ソート方法の基本的な考え方: たとえば、大きいものから小さいものへとソートされた配列 $arr = array(2,6,3,9) があるとします。
最初の大きなループ:まず$arr[0]が最大値であると仮定し、それをそれぞれ$arr[1]〜$arr[3]と比較し、それが大きい場合は交換する処理。は次のとおりです (2 ,6,3,9)---2 と 6 の比--->(6,2,3,9)---6 と 3 の比--->( 6,2,3,9)- --6 と 9 の比率 --->(9,2,3,6)。ここの添字も変更する必要があることに注意してください。
2 番目の大きなループ: $arr[1] が最大であると仮定し ($arr[0] は除外)、それを $arr[2]~$arr[3] とそれぞれ比較します。プロセスは次のようになります (9,2, 3,6 )----2 と 3 の比率 --->(9,3,2,6)---3 と 6 の比率 --->(9,6,2,3)。
3 番目の大きなループ: $arr[2] が最大であると仮定し、$arr[3] と比較します。プロセスは次のようになります (9,6,2,3)---2 と 3 の比率--- >(9, 6,3,2)
同様にN-1大サイクル後もアレンジ可能です
PHPコードは次のとおりです。これも関数でカプセル化されています
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
関数 selectSort(&$arr){ for($i=0;$i $max = $arr[$i]; for($j=$i+1;$j if($max<$arr[$j]){ $max = $arr[$j]; $arr[$j] = $arr[$i]; $arr[$i] = $max; } } } $arr を返す; } $myarr = 配列(2,6,3,9); selectSort($myarr); エコー「 print_r($myarr); ?> |
コード分析:
最初の大きなサイクル:
$i=0 配列(2,6,3,9)
$j=1、2と6の比率を実行すると、$arr[0]=6、$arr[1]=2、$max=6、つまり(6,2,3,9)になります
$j=2、3と6の比率を実行: 実行しない
$j=3、9と6の比率を実行すると、$arr[0]=9、$arr[3]=6、$max=9となり、(9,2,3,6)になります
2 番目の大きなサイクル:
$i=1,$max=$arr[1]=2, 配列 (9,2,3,6)
$j=2、3と2の比率を実行すると、$arr[1]=3、$arr[2]=2、$max=3となり、(9,3,2,6)になります
$j=3、6と3の比率を実行すると、$arr[1]=6、$arr[3]=3、$max=6となり、(9,6,2,3)になります
3 番目のサイクル:
$i=2,$max=$arr[2]=2, 配列 (9,6,2,3)
$j=3、3と2の比率を実行すると、$max[2]=3、$arr[3]=2、$max=3となり、(9,6,3,2)になります
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。