PHP一个简单的快速排序
Freigeben: 2016-07-25 08:42:38
Original
827 Leute haben es durchsucht
通过不断的定位基准数的位置来实现快速排序
-
/**
- * Created by PhpStorm.
- * User: saint
- * Date: 15/8/5
- * Time: 上午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 a[$j]) && ($j > $i)) {
- $j--;
- }
-
- // 从左到右查找比基准数大的
- while(($standard >= $this->a[$i]) && ($j > $i)) {
- $i++;
- }
-
- $tmp = $this->a[$i];
- $this->a[$i] = $this->a[$j];
- $this->a[$j] = $tmp;
- }
-
- // 确定基准数的位置
- $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
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
-
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