php 冒泡排序
2017-02-15 13:48 Caoxt 阅读(200) 评论(0) 编辑 收藏 举报冒泡排序是一种交换排序,它的基本思想是两两比较相邻记录的关键字,如果反序则交换,直到没有反序为止。下边的代码严格意义上说不属于冒泡排序算法,因为它不满足“两两比较相邻记录“的冒泡排序思想。
function bubble_sort($arr) { for($i=0; $i<count($arr); $i++){ for($j=$i+1; $j<count($arr); $j++){ if($arr[$i] > $arr[$j]){ $new = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $new; } } } return $arr; } $arr = array('5', '3', '8', '9', '1', '0'); $sortarr = bubble_sort($arr); print_r($sortarr);
下边来看正宗的冒泡算法,也是上边代码的改进。
function bubble_sort($arr) { for($i=0; $i<count($arr); $i++){ for($j=count($arr)-1; $j>$i; $j--){ if($arr[$j-1] > $arr[$j]){ $new = $arr[$j-1]; $arr[$j-1] = $arr[$j]; $arr[$j] = $new; } } } return $arr; } $arr = array('5', '6', '8', '9', '1', '0'); $sortarr = bubble_sort($arr); print_r($sortarr);
上边的算法可以再做优化,这里不再详述。