冒泡:大的下沉,小的上冒;
当前元素与下一位进行比较,若当前元素大于下一位元素,则交换位置(将当前元素后移一位)
$arr = array(5,4,3,2,1); // 为实验更清晰,数据为倒叙排序 print_r($arr); function bubbleSort($arr) { $len = count($arr); for ($i=0; $i<$len-1; $i++) { // 循环多少轮($len-1) for ($k=0; $k<$len-1-$i; $k++) { // 还需比较的次数($len-1-$i) if ($arr[$k] > $arr[$k+1]) { // 若当前元素大于下一位元素,则交换位置(将当前元素后移一位) $tmp = $arr[$k+1]; $arr[$k+1] = $arr[$k]; $arr[$k] = $tmp; } } print_r($arr); } return $arr; } $res = bubbleSort($arr); //print_r($res);