PHP でのシンプルなクイックソート
リリース: 2016-07-25 08:42:38
素早い並べ替えは、基底番号を常に配置することで実現されます
- /**
- * 作成者: PhpStorm.
- * ユーザー: saint
- * 日付: 15/8/5
- * 時刻: 上午11:49
- */
- class Demo
- {
- public $a = array(3, 6, 9, 2, 4 , 7 , 1, 5, 8, 0);
-
- public function qsort($left, $right)
- {
- if($left > $right) {
- return;
- }
-
- $i = $left; j = $right;
- $standard = $this->a[$left];
-
- while($i != $j) {
-
- // 基数より小さい単位を右から左に探します
- while( ($standard <= $this->a[$j]) && ($j > $i)) {
- $j--;
- }
-
- // 標準番号を左から右に探します Big
- while(($standard >= $this->a[$i]) && ($j > $i)) {
- $i++;
- }
-
- $tmp = $this->a [$i ];
- $this->a[$i] = $this->a[$j];
- $this->a[$j] = $tmp;
- }
-
- // OK の位置基数
- $this->a[$left] = $this->a[$i];
- $this->a[$i] = $standard;
-
- $this->qsort ( $left, $i - 1);
- $this->qsort($i + 1, $right);
- }
-
- // 関数を実行
- public function main()
- {
- $left = 0;
- $ right = count($this->a) - 1;
- $this->qsort($left, $right);
- print_r($this->a);
- }
- }
-
- $demo = new Demo();
- $demo->main();
-
コードをコピー
出典: http://my.oschina.net/liuke1556/blog/488215
|
PHP
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31