ホームページ  >  記事  >  バックエンド開発  >  PHP はさまざまなソートアルゴリズムを実装しています

PHP はさまざまなソートアルゴリズムを実装しています

WBOY
WBOYオリジナル
2016-07-25 09:12:38796ブラウズ


// バブルソート
関数 バブルソート($arr) {
// 配列の全長を取得します
$num = count($arr);
//配列を順方向に走査します
for ($i = 1; $i $num; $i++ ) {
// 逆走査
for ($j = $num - 1; $j >= $私 ; $j--) {
// 2 つの隣接する数値を比較します
if ($arr[$j] $arr[$j -1]) {
// 小さい数値を一時的に保存します
$iTemp = $arr[$j-1];
// 大きいものを前に置きます
$arr[$j-1] = $arr[$j ];
//小さい方を後ろに置きます
$arr[$j] = $iTemp;
}
}
}
戻る $arr;
}

// 交換ソート
関数 ExchangeSort($arr){
$num = count($arr);
// 配列を走査します
for ($i = 0;$i $num - 1 ; $i++) {
// 現在のインデックスの次のインデックスを取得します
for ($j = $i + 1; $j $num ; $j++) {
//隣接する 2 つの値を比較します
if ($arr[$j] $arr[$i ]){
// 小さい数値を一時的に保存します
$iTemp = $arr[$i];
// 大きいものを前に置きます
$arr[$i] = $arr[$j];
//小さい方を後ろに置きます
$arr[$j] = $iTemp;
}
}
}
戻る $arr;
}

//選択範囲の並べ替え
関数 SelectSort($arr) {
// 配列の全長を取得します
$num = count($arr);
// 配列を走査します
for ($i = 0;$i $num-1; $i++) {
// 現在値を一時的に保存します
$iTemp = $arr[$i];
// 現在位置を一時的に保存します $iPos = $i;
// 現在位置以降のデータをトラバースします
for ($j = $i + 1; $j $num ; $j++){
// 現在の値より小さい
がある場合 if ($arr[$j] $iTemp) {
// 一時的な最小値
$iTemp = $arr[$j];
// 一時的な場所
$iPos = $j;
}
}
// 現在の値を計算された位置に代入します
$arr[$iPos] = $arr[$i];
// 現在の値を計算された値に置き換えます
$arr[$i] = $iTemp;
}
戻る $arr;
}

// 挿入ソート
関数 挿入並べ替え($arr){
$num = count($arr);
// 配列を走査します
for ($i = 1;$i $num; $i++ ) {
// 現在の値を取得します
$iTemp = $arr[$i];
// 現在値の前の位置を取得します
$iPos = $i - 1;
//現在の値が前の値より小さい場合、配列の先頭に達していません
ながら (($iPos >= 0) && ($iTemp) $arr[ $iPos])) {
// 前の値を 1 桁戻します
$arr[$iPos

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。