PHP快速排序

来源:互联网 发布:3d66软件免费下载 编辑:程序博客网 时间:2024/05/21 08:35

有的时候老是把已经学过了的忘了,没有办法只好找地方记下来.
今天把快速排序又回顾了一遍,

 

$a[0= "192.128.2.3";
$a[
1= "132.168.1.5";
$a[
2= "192.168.1.2";
$a[
3= "192.178.2.4";
$a[
4= "165.152.1.8";

function swap(
&$m,&$n)
{
 $temp 
= $n;
 $n 
= $m;
 $m 
= $temp;
}


function QuickSort(
&$b,$l,$r)
{
 $i 
= $l;$j = $r;
 $x 
= $b[($i+$j)/2];
 
do{
  
while (($b[$i]>$x)&&($i<$r))$i++;
  
while (($b[$j]<$x)&&($j>$l))$j--;
  
if($i <= $j) swap($b[$j--],$b[$i++]);
 }

 
while ($i<=$j);
 
if($l<$j) QuickSort(&$b,$l,$j);
 
if($i<$r) QuickSort(&$b,$i,$r);
}

QuickSort($a,
0,count($a)-1);

 

呵呵!说实话真的很简单,但是大二到现在居然没有人再考过我这个问题,昨天一个同事问我写这个程序要多长时间,10分钟够不?我才意识到自己真的把递归调用放下太久了!或许有高人说过少用递归调用吧!但是想想少用并不是不用,程序想写的好,什么都得想到!做为一个程序员,基本的东西也是最重要的东西.