ホームページ  >  記事  >  バックエンド開発  >  ソートアルゴリズム PHP版 クイックソート、バブルソート_PHPチュートリアル

ソートアルゴリズム PHP版 クイックソート、バブルソート_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:34:30849ブラウズ

1. クイックソート

1. はじめに
クイックソートは、Tony Hall によって開発されたソートアルゴリズムです。平均して、n 個の項目を並べ替えるには、O(n log n) 個の比較が必要です。最悪の場合、O(n2) 個の比較が必要になりますが、この状況はまれです。実際、クイックソートは、ほとんどのアーキテクチャで内部ループを効率的に実装できるため、他の Ο(n log n) アルゴリズムよりも大幅に高速であることがよくあります。
クイックソートは、分割統治戦略を使用してシーケンス (リスト) を 2 つのサブシリーズ (サブリスト) に分割します。
2. ステップ
「ピボット」と呼ばれる要素をシーケンスから選択します。
ピボット値よりも小さいすべての要素がピボットの前に配置され、ピボット値よりも大きいすべての要素が配置されるようにシーケンスを並べ替えます。ピボットの前から後ろまで(同じ番号をどちらの側にも付けることができます)。このパーティションが終了すると、塩基はシーケンスの途中になります。これをパーティション操作と呼びます。
基本値より小さい要素の部分配列と基本値より大きい要素の部分配列を再帰的に並べ替えます。
3. コードの実装

コードをコピーします コードは次のとおりです:
function QuickSort(array $array)
{
$len = count($array);
if($len {
return $array;
}
$key = $array[0];
$left = array();
$right = array();
for($i=1; $i<$len; ++ $ i)
$ right [] = $ array [$ i]}
print '
';<br> print_r(quickSort(array(1,4,22,5,7,6,9)));<br> print '
';

4. 並べ替え効果

クイックソートを使用して数値の列を並べ替えるプロセス





2. バブルソート


1. はじめに
バブルソート (バブルソート、台湾での翻訳: バブルソートまたはバブルソート) は、単純な並べ替えアルゴリズムです。ソート対象のシーケンスを繰り返し調べて、一度に 2 つの要素を比較し、順序が間違っている場合はそれらを交換します。配列を訪問する作業は、それ以上の交換が必要なくなるまで繰り返されます。これは、配列がソートされたことを意味します。このアルゴリズムの名前は、小さい要素がスワッピングによって配列の先頭にゆっくりと「浮動」するという事実に由来しています。

2. ステップ
隣接する要素を比較します。最初のものが 2 番目のものより大きい場合は、両方を交換します。 隣接する要素の各ペアに対して、最初のペアから始めて最後のペアで終わるまで、同じことを行います。この時点では、最後の要素が最大の数値である必要があります。

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

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

3. コードの実装ソートアルゴリズム PHP版 クイックソート、バブルソート_PHPチュートリアル

コードをコピーします
コードは次のとおりです:

function bubbingSort(array $array)
{
for($i=0, $len=count($array)-1; $i<$len; ++$i)
{
for( $j=$len; $j>$i; --$j)
]; return $array;
}

print '
';<br> print_r(bubbingSort(array(1,4,22,5,7,6,9)));<br> print '
';

4. 並べ替え処理

バブルソートを使用して数値の列を並べ替えるプロセス




http://www.bkjia.com/PHPjc/751510.html

www.bkjia.com

ソートアルゴリズム PHP版 クイックソート、バブルソート_PHPチュートリアルtru​​e

http://www.bkjia.com/PHPjc/751510.html

技術記事 1. クイック ソート 1. はじめに クイック ソートは、Tony Hall によって開発されたソート アルゴリズムです。平均して、n 個の項目を並べ替えるには、O(n log n) 個の比較が必要です。最悪の場合は…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。