ホームページ >バックエンド開発 >PHPチュートリアル >PHP はクイックソートを実装します PHP 配列のソート PHP 配列の並べ替え PHP バブルソート計算

PHP はクイックソートを実装します PHP 配列のソート PHP 配列の並べ替え PHP バブルソート計算

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-29 08:54:571050ブラウズ

クイックソート: 順序なし配列 $data で、比較値として任意の値を選択し、先頭の検索インデックスとして i、末尾の検索インデックスとして j を定義します。アルゴリズムの手順:

(1) 比較値 $value=$ を初期化します。 data[0], $i=1, $j=count($data)-1

(2) まず端から検索し、$data[$j]が$valueより小さいかどうかを判断し、小さい場合は$ j- -、$value より小さい座標

が見つかるまで検索を続けます (3) この時点で、$data[$i] が $value より大きいかどうかを判断するためにヘッド検索を開始し、そうでない場合は $ i++、$valueより小さい座標が見つかるまで検索を続けます

(4) このとき、$data[$j]と$data[$i]の値は]を相互に交換、つまり$valueより大きい値を右側に、$valueより小さい値を左側に配置します

(5)$になるまで3と4を繰り返します。 i==$j

(6) この時、$valueより大きいものを右側、$valueより小さいものを左側に配置し、真ん中の座標位置が決まりましたは $i、中間の値は $value です。$data[$i] の値を $data[0] の値と交換します。中間の値は $value であるため、$value を中間の座標に移動する必要があります。配列

(7) 配列は左右の 2 つの順序付けされていない配列に分割され、配列の長さが 1 になるまでそれぞれ 1 ~ 6 を再帰的に実行します

ヒント: 中国のクイック ソートの定義は、Baidu でより明確になります。

コード:

<?php header("Content-type: text/html; charset=utf-8"); 

function quickSort($data, $startIndex, $endIndex){
	if($startIndex < $endIndex){
		$value = $data[$startIndex];  // 对比值
		$startT = $startIndex + 1;
		$endT = $endIndex;
		
		while ($startT != $endT) {
			// 找到比对比值小的坐标
			while ($data[$endT] > $value && $endT > $startT){
				$endT--;
			}

			// 找到比对比值大的左边
			while ($data[$startT]  $startT){
				$temp =$data[$startT];
				$data[$startT] = $data[$endT];
				$data[$endT] = $temp;
			}
		}
		
		// 防止数组已经排序好的情况
		if($data[$startT] <br>
                
                
                <p>
                    上記では、クイック ソートと PHP コンテンツを含め、PHP でクイック ソートを実装する方法を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。 </p>
                <p>
                    </p>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。