2008年7月30日 星期三

shaker排序法

$length=rand(8,10);
for($i=0;$i<$length;$i++)
$a[]=rand(100,200);

$left=0;
$right=$length-1;
while($left<$right){
for($i=$left;$i<$right;$i++){
if($a[$i]>$a[$i+1]){
$tmp=$a[$i];
$a[$i]=$a[$i+1];
$a[$i+1]=$tmp;
$shift=$i;
}
}
$right=$shift;

for($i=$right;$i>$left;$i--){
if($a[$i]<$a[$i-1]){
$tmp=$a[$i];
$a[$i]=$a[$i-1];
$a[$i-1]=$tmp;
$shift=$i;
}
}
$left=$shift;
}

foreach($a as $num)
echo $num."
\n";

沒有留言: