PHP冒泡排序
利用双循环来实现排序,外循环控制所有轮次,内循环用来控制每一轮的排序。
<?php
//定义一个数组
$arr=array(5,2,9,13,6,1);
//执行外循环,count($arr)-1是为了限制循环次数
for($i=0;$i<count($arr)-1;$i++){
//执行内循环
for($j=0;$j<count($arr)-$i-1;$j++){
//可以通过下面的>符号来控制从此小到大还是从大到小排序
if($arr[$j]>$arr[$j+1]){
//定义一个临时储存的数组
$aa=$arr[$j+1];
$arr[$j+1]=$arr[$j];
$arr[$j]=$aa;
}
}
}
//用print_r($arr);查看
//用遍历数组直接输出大小
foreach($arr as $key=>$value){
echo "从小到大依次排序为" . $value ."<br>";
}
?>
也可以通过每一轮外循环输出的值来输出数组,但是输出的值是取反。
<?php
$arr = array(5,3,6,2,8,10);
for($i = count($arr)-1;$i>=0;$i--){
for($j = 0 ; $j < $i ; $j++){
if($arr[$j] > $arr[$j+1] ){
$aa = $arr[$j+1];//定义一个暂时的数组,储存数据
$arr[$j+1] = $arr[$j];
$arr[$j] = $aa;//$arr=array(5,6,3,2,8,10)
}
}
echo $arr[$i],",";//输出每执行一次的值,与数组结果相反,数组(小=>大)这个输出结果为(大=>小)
}
?>