分享php排序的四種算法與代碼,。
冒泡: function bubble_sort($arr){ $num = count($arr); for($i=0;$i<$num;$i++){ for($j=$num-1;$j>$i;$j--){ if($arr[$j-1]>$arr[$j]){ $tmp = $arr[$j]; $arr[$j] = $arr[$j-1]; $arr[$j-1] = $tmp; } } } return $arr; }
選擇: function select_sort($arr){ for($i=0;$i<count($arr)-1;$i++){ for($j=$i+1;$j<count($arr);$j++){ if($arr[$i]>$arr[$j]){ $tmp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $tmp; } } } return $arr; } 插入: function insert_sort($arr){ $num = count($arr); for($i=1;$i<$num;$i++){ $tmp = $arr[$i]; $j = $i-1; while($arr[$j]>$tmp){ $arr[$j+1]=$arr[$j]; $arr[$j]=$tmp; $j--; } } return $arr; }
快速: function quick_sort($arr){ if (count($arr) <= 1) return $arr; $arr_left = array(); $arr_right = array(); $key = $arr[0]; for($i=1;$i<count($arr);$i++){ if($key>$arr[$i]){ $arr_left[] = $arr[$i]; }else{ $arr_right[] = $arr[$i]; } } $arr_left = quick_sort($arr_left); $arr_right = quick_sort($arr_right); $arr = array_merge($arr_left,array($key),$arr_right); return $arr; }
|