ホームページ > バックエンド開発 > PHPチュートリアル > PHP 選択ソートの原則と使用法

PHP 選択ソートの原則と使用法

墨辰丷
リリース: 2023-03-31 21:56:01
オリジナル
2436 人が閲覧しました

この記事では、配列ソートを実装するための 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 コードは次のとおりです。これも関数でカプセル化されています

<?php
function selectSort(&$arr){
 for($i=0;$i<count($arr);$i++){
 $max = $arr[$i];
 for($j=$i+1;$j<count($arr);$j++){
  if($max<$arr[$j]){
  $max = $arr[$j];
  $arr[$j] = $arr[$i];
  $arr[$i] = $max;
  }
 }
 }
 return $arr;
}
$myarr = array(2,6,3,9);
selectSort($myarr);
echo "<pre class="brush:php;toolbar:false">";
print_r($myarr);
?>
ログイン後にコピー

コード分析:

最初の大きなループ:

$i=0 array (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, array (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, array (9,6,2,3)

$j=3, の比率を実行します。 3 と 2: $max[2 ]=3,$arr[3]=2,$max=3、つまり (9,6,3,2)


要約

:以上がこの記事の全内容ですが、皆様の学習のお役に立てれば幸いです。 関連する推奨事項:

php でのメール関数の定義と使用法

php でフォームを操作してメールを送信する方法

php で各段落にスペースを追加する方法

以上がPHP 選択ソートの原則と使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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