php快速排序的算法
Freigeben: 2016-07-25 08:43:06
Original
1021 Leute haben es durchsucht
- function qsort(&$arr)
- {
- _quick_sort($arr, 0, count($arr) - 1);
- }
-
- /**
- * 采用递归算法的快速排序。
- *
- * @param array $arr 要排序的数组
- * @param int $low 最低的排序子段
- * @param int $high 最高的排序字段
- */
- function _quick_sort(&$arr, $low, $high)
- {
- $low_data = $arr[$low];
- $prev_low = $low;
- $prev_high = $high;
- while ($low {
- while ($arr[$high] >= $low_data && $low $high--;
- }
- if ($low $arr[$low] = $arr[$high];
- $low++;
- }
- while ($arr[$low] $low++;
- }
- if ($low $arr[$high] = $arr[$low];
- $high--;
- }
- }
- $arr[$low] = $low_data;
- if ($prev_low _quick_sort($arr, $prev_low, $low);
- }
- if ($low + 1 _quick_sort($arr, $low + 1, $prev_high);
- }
- }
-
- function quick_sort(&$arr)
- {
- $stack = array();
- array_push($stack, 0);
- array_push($stack, count($arr) -1);
- while (!empty($stack)) {
- $high = array_pop($stack);
- $low = array_pop($stack);
- $low_data = $arr[$low];
- $prev_low = $low;
- $prev_high = $high;
- while ($low {
- while ($arr[$high] >= $low_data && $low $high--;
- }
- if ($low $arr[$low] = $arr[$high];
- $low++;
- }
- while ($arr[$low] $low++;
- }
- if ($low $arr[$high] = $arr[$low];
- $high--;
- }
- }
- $arr[$low] = $low_data;
- if ($prev_low array_push($stack, $prev_low);
- array_push($stack, $low);
- }
- if ($low + 1 array_push($stack, $low + 1);
- array_push($stack, $prev_high);
- }
- }
- }
复制代码
|
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