PHP两种快速排序算法实例_.docx
PHP两种快速排序算法实例_ 这篇文章主要介绍了PHP两种快速排序算法实例,本文挺直给出实现代码,分别用法递归法、迭代法实现,需要的伴侣可以参考下 虽然在PHP这样的web应用开发中,我们不是太强调排序的重要性,由于PHP自身已经带了例如sort()等这样强大的排序函数,但是在一些重要的场合,例如某些高并发的场合,我想排序算法的影响已经不能忽视。所以在此介绍递归排序和迭代排序。 递归法: /* * 递归法实现的快速排序 */ function quicksort($seq) $k = $seq0; $x = array(); $y = array(); for($i=1; $i $_size; $i+) if($seq$i = $k) $x = $seq$i; else $y = $seq$i; $x = quicksort($x); $y = quicksort($y); return array_merge($x, array($k), $y); else return $seq; 迭代法: /* * 迭代法的快速排序 */ function quicksortx($seq) $stack = array($seq); $sort = array(); while ($stack) $arr = array_pop($stack); if(count($arr) = 1) if(count($arr) = 1) $sort = $arr0; continue; $k = $arr0; $x = array(); $y = array(); $_size = count($arr); for($i =1 ;$i $_size; $i+) if($arr$i = $k) $x = $arr$i; else $y = $arr$i; !empty($y) array_push($stack, $y); array_push($stack, array($arr0); !empty($x) array_push($stack, $x); return $sort; 用法: /* *产生一个随机数组 */ for($i=0;$i5;$i+) $testArr=mt_rand(0,100); var_dump($testArr); var_dump(quicksort($testArr); var_dump(quicksortx($testArr); 更多信息请查看IT技术专栏 .