<?php /** * Created by PhpStorm. * User: huangye * Date: 2015/8/26 * Time: 18:57 */ //从小到大排序 function bubble_sort_1($a_data) { $len = count($a_data); for ($i = 0; $i < $len; $i++) { for ($j = 0; $j < $len - $i - 1; $j++) { if ($a_data[$j] > $a_data[$j + 1]) { $temp = $a_data[$j]; $a_data[$j] = $a_data[$j + 1]; $a_data[$j + 1] = $temp; } } } return $a_data; } $a_data = array(20, 40, 60, 80, 30, 70, 90, 10, 50, 0); var_dump(bubble_sort_1($a_data)); /** * 冒泡排序改进版 * 从小到大排序 * @param $a_data * @return mixed */ function bubble_sort_2($a_data) { $len = count($a_data); $flag = 1; //如果在内循环内没有发生交换,则$flag为0,此时可知数组中的数字已经有序了,不用在继续比较 for ($i=0; $i<$len && $flag==1; $i++) { $flag = 0; for ($j=0; $j<$len-$i-1; $j++) { if ($a_data[$j+1] < $a_data[$j]) { $tmp = $a_data[$j]; $a_data[$j] = $a_data[$j+1]; $a_data[$j+1] = $tmp; $flag = 1; } } } return $a_data; } $a_data = array(20, 40, 60, 80, 30, 70, 90, 10, 50, 0); var_dump(bubble_sort_2($a_data));