排序算法之冒泡排序法

来源:互联网 发布:美人鱼 林俊杰 知乎 编辑:程序博客网 时间:2024/05/16 10:12
/** * 冒泡排序 * @param array $arr 待排序数组 * @param bool $asc 升序 * @return void */function bubbleSort(&$arr, $asc = true){$count = count($arr);for($i = 0; $i < $count - 1; $i++) {for($j = 0; $j < $count - 1 - $i; $j++) {if(($asc && $arr[$j] > $arr[$j+1]) || (!$asc && $arr[$j] < $arr[$j+1])) {$tmp = $arr[$j];$arr[$j] = $arr[$j+1];$arr[$j+1] = $tmp;}}}}// 测试$arr = [15, 5, 1, 3, 6, 9, 9, 11, 2, 12];// 升序bubbleSort($arr);echo implode(', ', $arr), PHP_EOL;// 降序bubbleSort($arr, false);echo implode(', ', $arr);


输出结果如下:

1, 2, 3, 5, 6, 9, 9, 11, 12, 15
15, 12, 11, 9, 9, 6, 5, 3, 2, 1

0 0