我看了那篇文章,发现里面函数的参数太繁复了。
所以我写了以下代码,以供参考
function sortng($ng)//ng 即 number group
{
if($i=count($ng)<2)return 0;//数组的合法和大小验证.
$i++;
while($i--)//第一次循环
{
$t=0;
$tem=0;
while($t<$i)//第二次循环
{
if($ng[$t]<$ng[$t+1])
$tmp=$ng[$t];
$ng[$t]=$ng[$t+1];
$ng[$t+1]=$tmp;
$t++;
}
}
}
函数的执行过程如下:
假如,现在有长度为7的数组:
$ng=array(4,2,,3,1,5,9,5,3)
那么函数先指定$i为7,那么第一次循环里
$i为6,$t的初值为0
然后在$t的循环里,循环把最大值移动到$n[$i]即$n[6]里。
此时:$ng为2,3,1,4,4,3,9 最后一位最大
然后$t的循环退出,$i递减1。
再进入$t的循环把剩下的最大值移动到$n[5]里。
此时:$ng为2,1,3,4,3,4,9 最后两位最大
余下的就如此类推,直到函数结束为止。
|