ソート アルゴリズムを実装する
php メソッド: 1. バブル ソート、2 つずつ比較、各サイクルの最後の要素を比較する必要はありません; 2. 選択ソート、基本値として 1 つを選択し、残り こちらと比較して位置を変更してください。
#ソート アルゴリズムを実装する php メソッド:
1. バブル ソート:
ペアを比較する場合、最後の要素はすでに最大または最小であるため、各サイクルの最後の要素を比較する必要はありません。function maopaoSort ($list) { $len = count($list); for ($i = 0; $i < $len - 1; $i++) { for ($j = 0; $j < $len - $i - 1; $j++) { if ($list[$j] > $list[$j + 1]) { $tmp = $list[$j]; $list[$j] = $list[$j + 1]; $list[$j + 1] = $tmp; } } } return $list; }
2. 選択の並べ替え:
基本値として 1 つを選択し、残りをこの値と比較して、位置を切り替えます。function xuanzeSort ($list) { $len = count($list); for ($i = 0; $i < $len - 1; $i++) { $pos = $i; for ($j = $i + 1; $j < $len; $j++) { if ($list[$pos] > $list[$j]) { $pos = $j; } } if ($pos != $i) { $tmp = $list[$pos]; $list[$pos] = $list[$i]; $list[$i] = $tmp; } } return $list; }
3. クイックソート:
原理は、ルーラーの値を取り出し、それを左右の 2 つの配列に分割し、それぞれ比較することです。function kuaisuSort ($list) { $len = count($list); if ($len <= 1) {//递归出口 return $list; } $base = $list[0];//选择一个比较值 $leftList = $rightList = []; for ($i = 1; $i < $len; $i++) { if ($base > $list[$i]) { $leftList[] = $list[$i]; } else { $rightList[] = $list[$i]; } } //递归分别再处理左右两边的数组 $leftList = kuaisuSort($leftList); $rightList = kuaisuSort($rightList); return array_merge($leftList, [$base], $rightList); }
4. 挿入ソート:
前の数値がすべて正しい順序であると仮定すると、n 番目の数値をfunction charuSort ($list) { $len = count($list); for ($i = 1; $i < $len; $i++) { $tmp = $list[$i];//获取对比元素 for ($j = $i - 1; $j > 0; $j--) { if ($list[$j] > $tmp) { $list[$j + 1] = $list[$j]; $list[$j] = $tmp; } else { break; } } } return $list; }
php プログラミング
以上がPHPでソートアルゴリズムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。