phpアルゴリズム
1737 ワード
phpクイックソートアルゴリズム
基本思想の原理
高速順序付け(Quicksort)は発泡順序付けの改良である.彼の基本思想は:1回のソートを通じて並べ替えられる記録を独立した2つの部分に分割し、そのうちの一部のキーワードはいずれも他の部分が記録したキーワードより小さい場合、それぞれこの2つの部分の記録を迅速にソートし続けることができ、ソート過程全体を再帰的に行うことができ、シーケンス全体の秩序化の目的を達成することができる.
まず配列でデータム値を選択します
配列の中で基準値より大きいものを片側に、基準値より小さいものを他方に、基準値を中間の位置に置く
再帰的にカラムの両側の配列をソートする
phpバブルアルゴリズム並べ替え
きほんげんり
1.隣接する要素を比較します.1つ目が2つ目より大きい場合は、2つを交換します.
2.各ペアの隣接要素について、最初のペアから最後のペアまで同じ作業を行います.この点では、最後の要素が最大の数になるはずです.
3.すべての要素について、最後の1つを除いて、上記の手順を繰り返します.
4.比較する必要がなくなるまで、より少ない要素に対して上記の手順を繰り返します.
基本思想の原理
高速順序付け(Quicksort)は発泡順序付けの改良である.彼の基本思想は:1回のソートを通じて並べ替えられる記録を独立した2つの部分に分割し、そのうちの一部のキーワードはいずれも他の部分が記録したキーワードより小さい場合、それぞれこの2つの部分の記録を迅速にソートし続けることができ、ソート過程全体を再帰的に行うことができ、シーケンス全体の秩序化の目的を達成することができる.
まず配列でデータム値を選択します
配列の中で基準値より大きいものを片側に、基準値より小さいものを他方に、基準値を中間の位置に置く
再帰的にカラムの両側の配列をソートする
//
public function quickSort($array)
{
if (count($array) <= 1) {
return $array;
}
$defaultValue = $array[0];
$leftArray = [];
$rightArray = [];
for ($i = 1; $i < count($array); $i++) {
if ($array[$i] > $defaultValue)
$rightArray[] = $array[$i];
else
$leftArray[] = $array[$i];
}
$leftArray = self::quickSort($leftArray);
$leftArray[] = $array[0];
$rightArray = self::quickSort($rightArray);
return array_merge($leftArray, $rightArray);
}
phpバブルアルゴリズム並べ替え
きほんげんり
1.隣接する要素を比較します.1つ目が2つ目より大きい場合は、2つを交換します.
2.各ペアの隣接要素について、最初のペアから最後のペアまで同じ作業を行います.この点では、最後の要素が最大の数になるはずです.
3.すべての要素について、最後の1つを除いて、上記の手順を繰り返します.
4.比較する必要がなくなるまで、より少ない要素に対して上記の手順を繰り返します.
//
public function bubbleAlgorithm($array)
{
if (!is_array($array)) {
return false;
}
for ($i = 1; $i < count($array); $i++) {
for ($j = 0; $j < count($array) - $i; $j++) {
if ($array[$j] > $array[$j + 1]) {
$tmp = $array[$j];
$array[$j] = $array[$j + 1];
$array[$j + 1] = $tmp;
}
}
}
return $array;
}