PHP实现冒泡排序
冒泡排序思想:
在要排序的一組數中,對當前還未排好序的范圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即:每當兩相鄰的數比較后發現它們的排序與排序要求相反時,就將它們互換。
代碼實現:(從小到大)
$arr = [1, 21, 13, 4, 15, 26, 17, 8];
function bubble($arr)
{
$size = count($arr);
for($i=0; $i<$size; $i++){
for($j=0; $j<$size-$i-1; $j++){
if($arr[$j] > $arr[$j+1]){
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
}
}
}
return $arr;
}
var_dump(bubble($arr));
冒泡排序的優化:
對于其中進行判斷的語句如果沒有進入則,說明已經是有序的
$arr = [1, 21, 13, 4, 15, 26, 17, 8];
function bubble($arr)
{
$size = count($arr);
$change = 1;
for($i=0; $i<$size; $i++){
for($j=0; $j<$size-$i-1; $j++){
if($arr[$j] > $arr[$j+1]){
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
$change = 0;
}
}
if($change == 1){
break;
}else{
$change = 1;
}
}
return $arr;
}
var_dump(bubble($arr));
?
轉載于:https://www.cnblogs.com/catcrazy/p/6391835.html
總結
- 上一篇: spring 的jar包解释
- 下一篇: PHP配置文件详解php.ini