ホームページ  >  記事  >  バックエンド開発  >  PHPクイックソート小規模サンプル PHPクイックソート実装方法

PHPクイックソート小規模サンプル PHPクイックソート実装方法

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

PHPクイックソート小規模サンプルPHPクイックソート実装方法

完全なコード:

  1. set_time_limit(0);
  2. function QuickSort($arr) {
  3. if (count($arr) > 1) { // 配列の長さが より大きい場合のみ判断します1
  4. $k = $arr[0]; // デフォルトの参照オブジェクトは配列内の最初のオブジェクトです
  5. $x = array(); // 参照より小さいです $y = array();参照
  6. $_size = count($arr);
  7. for ($i = 1; $i <$_size; $i++) {
  8. if ($arr[$i] <= $k) {
  9. $x [] = $arr[ $i];
  10. } else {
  11. $y[] = $arr[$i]
  12. }
  13. }
  14. // 両側の配列を再帰的に並べ替えます
  15. $x = QuickSort($x) ;
  16. $y = QuickSort($y);
  17. return array_merge($x, array($k), $y);
  18. return $arr;
  19. }
  20. $test_array $n = 0;
  21. //300,000 のレコードをテストします
  22. while(++$n<=300000){
  23. $test_array[$n] = $n;
  24. echo 'Array init!
    ';
  25. shuffle($test_array); // 順序をシャッフルします
  26. 'Array shuffled
    '
  27. echo date( 'Y-m-d H:m:s') '; $res = QuickSort($test_array);
  28. echo date('Y-m-d H:m:s')?> コードをコピー
  29. 1) ターゲット配列を 2 つの配列に分割します。デフォルトでは最初の要素が基礎となります。 2) 参照オブジェクトより小さい場合は Left 配列に割り当てられ、それ以外の場合は Right 配列に割り当てられます。 3) 配列内の要素が 1 つだけになるまで、この方法に従います。

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