PHPクイックソート小規模サンプルPHPクイックソート実装方法
完全なコード:
-
- set_time_limit(0);
- function QuickSort($arr) {
- if (count($arr) > 1) { // 配列の長さが より大きい場合のみ判断します1
- $k = $arr[0]; // デフォルトの参照オブジェクトは配列内の最初のオブジェクトです
- $x = array(); // 参照より小さいです $y = array();参照
- $_size = count($arr);
- for ($i = 1; $i <$_size; $i++) {
- if ($arr[$i] <= $k) {
- $x [] = $arr[ $i];
- } else {
- $y[] = $arr[$i]
- }
- }
- // 両側の配列を再帰的に並べ替えます
- $x = QuickSort($x) ;
- $y = QuickSort($y);
- return array_merge($x, array($k), $y);
- return $arr;
- }
- $test_array $n = 0;
- //300,000 のレコードをテストします
- while(++$n<=300000){
- $test_array[$n] = $n;
- echo 'Array init!
';
- shuffle($test_array); // 順序をシャッフルします
- 'Array shuffled
'
- echo date( 'Y-m-d H:m:s') '; $res = QuickSort($test_array);
- echo date('Y-m-d H:m:s')?> コードをコピー
-
-
-
1) ターゲット配列を 2 つの配列に分割します。デフォルトでは最初の要素が基礎となります。
2) 参照オブジェクトより小さい場合は Left 配列に割り当てられ、それ以外の場合は Right 配列に割り当てられます。
3) 配列内の要素が 1 つだけになるまで、この方法に従います。
-
-
-
-
|