php快速排序的演算法
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-07-25 08:43:06
- 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 < $high)
- {
- while ($arr[$high] >= $low_data && $low < $high) {
- $high--;
- }
- if ($low < $high) {
- $arr[$low] = $arr[$high];
- $low ;
- }
- while ($arr[$low] <= $low_data && $low < $high) {
- $low ;
- }
- if ($low < $high) {
- $arr[$high] = $arr[$low];
- $high--;
- }
- }
- $arr[$low] = $low_data;
- if ($prev_low < $low) {
- _quick_sort($arr, $prev_low, $low);
- }
- if ($low 1 < $prev_high) {
- _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 < $high)
- {
- while ($arr[$high] >= $low_data && $low < $high) {
- $high--;
- }
- if ($low < $high) {
- $arr[$low] = $arr[$high];
- $low ;
- }
- while ($arr[$low] <= $low_data && $low < $high) {
- $low ;
- }
- if ($low < $high) {
- $arr[$high] = $arr[$low];
- $high--;
- }
- }
- $arr[$low] = $low_data;
- if ($prev_low < $low) {
- array_push($stack, $prev_low);
- array_push($stack, $low);
- }
- if ($low 1 < $prev_high) {
- array_push($stack, $low 1);
- array_push($stack, $prev_high);
- }
- }
- }
复制代码
|
php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
-
2025-02-26 03:58:14
-
2025-02-26 03:38:10
-
2025-02-26 03:17:10
-
2025-02-26 02:49:09
-
2025-02-26 01:08:13
-
2025-02-26 00:46:10
-
2025-02-25 23:42:08
-
2025-02-25 22:50:13
-
2025-02-25 21:54:11
-
2025-02-25 20:45:11
最新問題
-
2025-03-21 13:39:34
-
2025-03-21 13:38:34
-
2025-03-21 13:37:19
-
2025-03-21 13:35:24
-
2025-03-21 13:34:32