用php写快速排序

今天有点冲动,想用php写算法,于是用php按c语言分治加递归写了一个快排,结果很出乎我的意料,根本,没有改变各个直的改变,这才想起C应该是有指针的概念,而php没有这一说法,所以每一次递归,都是白费的,把自己写的很挫的代码记下吧;

<?php $arry=array(8,7,6,5,4,3,2); foreach($arry as $key) {  echo $key." "; } echo "<br>"; function getposition($arry,$lower,$high,$s) {  $key=$arry[$lower];  $i=$lower;  $j=$lower+1;  for(;$j<$high;$j++)     {   if($arry[$j]<$key)   {     $i=$i+1;     $t=$arry[$i];           $arry[$i]=$arry[$j];           $arry[$j]=$t;   }  }    $arry[$lower]=$arry[$i];    $arry[$i]=$key;    $arry[$s]=$i;    return $arry; } $list=array(); function quicksort($arry,$p,$r,$s) {   if($p<$r)  {   $list=getposition($arry,$p,$r,$s);   $position=$list[$s];      quicksort($list,$p,$position-1,$s);      quicksort($list,$position+1,$r,$s);  } } quicksort($arry,0,count($arry),count($arry));

?>;后面再想想其他的办法把这给解决了。

posted @ 2012-11-20 15:41  一只可怜的企鹅  阅读(122)  评论(0)    收藏  举报