您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP两种快速排序算法实例_PHP教程

2024/3/25 12:19:38发布33次查看
php两种快速排序算法实例 这篇文章主要介绍了php两种快速排序算法实例,本文直接给出实现代码,分别使用递归法、迭代法实现,需要的朋友可以参考下
虽然在php这样的web应用开发中,我们不是太强调排序的重要性,因为php自身已经带了例如sort()等这样强大的排序函数,但是在一些重要的场合,例如某些高并发的场合,我想排序算法的影响已经不能忽略。所以在此介绍递归排序和迭代排序。
递归法:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
* 递归法实现的快速排序
*/
function quicksort($seq)
{
$k = $seq[0];
$x = array();
$y = array();
for($i=1; $i
if($seq[$i]
$x[] = $seq[$i];
} else {
$y[] = $seq[$i];
}
}
$x = quicksort($x);
$y = quicksort($y);
return array_merge($x, array($k), $y);
} else {
return $seq;
}
}
迭代法:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
* 迭代法的快速排序
*/
function quicksortx(&$seq)
{
$stack = array($seq);
$sort = array();
while ($stack) {
$arr = array_pop($stack);
if(count($arr)
if(count($arr) == 1) {
$sort[] = &$arr[0];
}
continue;
}
$k = $arr[0];
$x = array();
$y = array();
$_size = count($arr);
for($i =1 ;$i
if($arr[$i]
$x[] = &$arr[$i];
} else {
$y[] = &$arr[$i];
}
}
!empty($y) && array_push($stack, $y);
array_push($stack, array($arr[0]));
!empty($x) && array_push($stack, $x);
}
return $sort;
}
使用:
?
1
2
3
4
5
6
7
8
9
10
/**
*产生一个随机数组
*/
for($i=0;$i
$testarr[]=mt_rand(0,100);
}
var_dump($testarr);
var_dump(quicksort($testarr));
var_dump(quicksortx($testarr));
http://www.bkjia.com/phpjc/958570.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/958570.htmltecharticlephp两种快速排序算法实例 这篇文章主要介绍了php两种快速排序算法实例,本文直接给出实现代码,分别使用递归法、迭代法实现,需要的朋友可...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product