Zihao

Make small but daily progress

0%

PHP算法——冒泡算法及其优化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$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;}
}
}
  • 本文作者: Zihao Yao
  • 本文链接: https://yaozihao.com/php_bubbling_op/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

欢迎关注我的其它发布渠道