简单的冒泡,但是从前和从后排序的不同实现
<?php
$arr=array(1,4,9,2,4,3,7,8,4,5,0);
$n=count($arr);
for($i=0;$i<$n-1;$i++)
{
for($j=$i;$j<$n-1;$j++)
{
if($arr[$i]>$arr[$j+1])
{
$temp=$arr[$i];
$arr[$i]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
echo "<pre>";
print_r($arr);
echo "</pre>";
?>
第二种网上看到的,是从后往前拍
<?php
$arr=array(1,4,9,2,4,3,7,8,4,5,0);
$n=count($arr);
for($i=1;$i<$n;$i++)
{
for($j=$n-1;$j>=$i;$j--)
{
if($arr[$j]<$arr[$j-1])
{
$temp = $arr[$j-1];
$arr[$j-1] = $arr[$j];
$arr[$j] = $temp;
}
}
}
echo "<pre>";
print_r($arr);
echo "</pre>";
//开始看感觉有点别扭,后来发现改成如下形式好像更直观些
for($i=0;$i<$n;$i++)
{
for($j=$n-1;$j>$i;$j--)
{
if($arr[$j]<$arr[$j-1])
{
$temp = $arr[$j-1];
$arr[$j-1] = $arr[$j];
$arr[$j] = $temp;
}
}
}
echo "<pre>";
print_r($arr);
echo "</pre>";
?>
小代码,大学问。求简。