ホームページ > バックエンド開発 > PHPチュートリアル > PHP を使用して 4 つの一般的な並べ替えアルゴリズムとその実装原則を実装する

PHP を使用して 4 つの一般的な並べ替えアルゴリズムとその実装原則を実装する

巴扎黑
リリース: 2016-11-24 09:18:32
オリジナル
1090 人が閲覧しました


******挿入ソート(一次元配列)

1、最初の要素から開始して、要素はソートされているとみなすことができます

2、次の要素を取り出します、並べ替えられた後、要素シーケンスを後ろから前にスキャンします

3. (並べ替えられた) 要素が新しい要素よりも大きい場合は、要素を次の位置に移動します

4. 並べ替えられた要素が見つかるまで手順 3 を繰り返します。それは新しい要素の位置以下です

5、この位置に新しい要素を挿入します

6、ステップ2を繰り返します

*/

function insert_sort($arr)

{
$ $ len = count($ arr); 1] = $tmp;

}

Return $arr;

}

/*

****** バブルソート(1次元配列)

1、隣接する要素を比較します。最初のものが 2 番目のものより大きい場合は、両方を交換します。

2. 隣接する要素の各ペアに対して、最初の最初のペアから最後の最後のペアまで同じ作業を実行します。この時点では、最後の要素が最大の数値である必要があります。

3. 最後の要素を除くすべての要素に対して上記の手順を繰り返します。

4. 比較する数値のペアがなくなるまで、要素を減らして上記の手順を繰り返します。

*/

function bubble_sort($arr)

{

$len = count($arr);

for ($i=0; $i<$len; $i++)

{

( $j=$len-1; $j>$i; $j--)

$ tmp = $arr[$j-1]; }

}

return $arr;

}

/*

******選択ソート(一次元配列)

1、まずソートされていないシーケンス内の最小の要素を見つけて、ソートされたシーケンスの開始位置

2に格納し、その後検索を続けますソートされていない残りの要素から最小の要素を取り出し、それをソートされたシーケンスの最後に置きます。

3 など、すべての要素が並べ替えられるまで続きます。

*/

function select_sort($arr){

$count = count($arr);

for($i=0; $i<$count-1; $i++)

{

$ k = $i;

for ($j=$i+1; $j<$count; $j++)

{

if ($arr[$k] > $arr[$j])

{

$arr[$k];

次元配列)

1、最初に中央の値をランダムに選択します

2、中央の値より小さい値を左側に置き、中央の値より大きい値を置きます右側で

3を選択し、左側と右側の値をそれぞれ比較します。側面データはステップ1と2を再帰的に呼び出して、左側、中央の値、右側のデータをマージします。

*/

関数 Quick_sort($arr)

{

if (count($arr) <= 1)

{

return $arr;

}

$key = $arr[0];

$left_arr = array();

$right_arr = array();

for ($i=1; $i
{

if ($arr[$i] <= $key) $left_arr[ ] = $arr[$i];

else $right_arr[] = $arr[$i];

}

$left_arr = Quick_sort($left_arr);

$right_arr = Quick_sort($right_arr);
Array_merge($ left_arr、$ key、$ right_arr);

} $ a = asray(123,321,432,341345,45234,53,493); a));

print_r(bubble_sort($a));

print_r(insert_sort($a));

print_r(quick_sort($a));

echo "";

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