$arr = array(1,30,5,8,2,7,12); $cou = count($arr);
// 常见算法,比较大小,两个数字,如果大或者小那么交换位置。 for($i=0;$i<$cou;$i++){ for($j=$i+1;$j<$cou;$j++){ echo $i.' ',$j.' ',$arr[$i].' ',$arr[$j].' ','<br/>'; if($arr[$i] > $arr[$j]){ $tmp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $tmp; $bool = true; } } } // 优化算法,增加一个flag,如果发生了交换就退出子循环。 for($i=0;$i<$cou;$i++){ $bool = false;
for($j=$i+1;$j<$cou;$j++){ echo $i.' ',$j.' ',$arr[$i].' ',$arr[$j].' ','<br/>'; if($arr[$i] > $arr[$j]){ $tmp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $tmp; $bool = true; } if($bool == false){break;} } }
|
近期评论