PHP でのシンプルなクイックソート

WBOY
リリース: 2016-07-25 08:42:38
オリジナル
782 人が閲覧しました
素早い並べ替えは、基底番号を常に配置することで実現されます
  1. /**
  2. * 作成者: PhpStorm.
  3. * ユーザー: saint
  4. * 日付: 15/8/5
  5. * 時刻: 上午11:49
  6. */
  7. class Demo
  8. {
  9. public $a = array(3, 6, 9, 2, 4 , 7 , 1, 5, 8, 0);
  10. public function qsort($left, $right)
  11. {
  12. if($left > $right) {
  13. return;
  14. }
  15. $i = $left; j = $right;
  16. $standard = $this->a[$left];
  17. while($i != $j) {
  18. // 基数より小さい単位を右から左に探します
  19. while( ($standard <= $this->a[$j]) && ($j > $i)) {
  20. $j--;
  21. }
  22. // 標準番号を左から右に探します Big
  23. while(($standard >= $this->a[$i]) && ($j > $i)) {
  24. $i++;
  25. }
  26. $tmp = $this->a [$i ];
  27. $this->a[$i] = $this->a[$j];
  28. $this->a[$j] = $tmp;
  29. }
  30. // OK の位置基数
  31. $this->a[$left] = $this->a[$i];
  32. $this->a[$i] = $standard;
  33. $this->qsort ( $left, $i - 1);
  34. $this->qsort($i + 1, $right);
  35. }
  36. // 関数を実行
  37. public function main()
  38. {
  39. $left = 0;
  40. $ right = count($this->a) - 1;
  41. $this->qsort($left, $right);
  42. print_r($this->a);
  43. }
  44. }
  45. $demo = new Demo();
  46. $demo->main();
コードをコピー
出典: http://my.oschina.net/liuke1556/blog/488215
PHP

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!