用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));
?>;后面再想想其他的办法把这给解决了。
浙公网安备 33010602011771号