在學習時我們經常會被老師拿幾個數字來讓大家進行各種排序,下面我來給各位同學介紹一下PHP冒泡排序算法,大家可直接合去給你老題師.
排序實現過程如下:
49 38 65 97 76 13 27
38 49 65 97 76 13 27 比較第1個和第2個數,小的放前邊,大的放后邊 38 49 65 97 76 13 27 比較第2個和第3個數,小的放前邊,大的放后邊 38 49 65 97 76 13 27 比較第3個和第4個數,小的放前邊,大的放后邊 38 49 65 76 97 13 27 比較第4個和第5個數,小的放前邊,大的放后邊 38 49 65 76 13 97 27 比較第5個和第6個數,小的放前邊,大的放后邊 38 49 65 76 13 27 97 比較第6個和第7個數,小的放前邊,大的放后邊 至此,第一趟比較結束,得到以下排序: 38 49 65 76 13 27 97
然后按照第一趟排序的方法繼續比較,直到完成排序.
列1,代碼如下:
- $arr = array(345,4,17,6,52,16,58,69,32,8,234);
- for($i=1;$i<count($arr);$i++){
- for($j=count($arr)-1;$j>=$i;$j--){
- if($arr[$j]<$arr[$j-1]){
- $temp = $arr[$j-1];
- $arr[$j-1] = $arr[$j];
- $arr[$j] = $temp;
- }
- }
- }
列2,代碼如下:
- /**
- * php冒泡排序算法的實現
- * @param array $array 一維數組
- * @return array 排序過后的數組
- */
- function bsort(array $array){
- $count = count($array);
- if($count == 0){
- return array();
- }elseif($count == 1){
- return $array;
- }elseif($count > 1){
- for($i=0;$i<$count;$i++){
- for($j=$count-1;$j>$i;$j--){
- if($array[$j]<$array[$j-1]){
- $temp = $array[$j];
- $array[$j] = $array[$j-1];
- $array[$j-1] = $temp;
- }
- }
- }
- return $array;
- }else{
- return false;
- }
- }
- $arr = array(56,2,5,78,110,36,52,77,89,3,10);
- print_r(bsort($arr));
新聞熱點
疑難解答