1、冒泡排序
1 $arr = array(12,34,57,42,165.4,73,51); 2 3 function bubbling_sort($array) 4 { 5 $cou = count($array); 6 if(!is_array($array)){ 7 die; 8 } 9 for($i=0;$i<$cou-1;$i++){ 10 for($j=$i+1;$j<$cou;$j++){ 11 if($array[$i]>$array[$j]){ 12 $tmp = $array[$j]; 13 $array[$j] = $array[$i]; 14 $array[$i] = $tmp; 15 } 16 } 17 } 18 return $array; 19 } 20 21 $ar = bubbling_sort($arr); 22 var_dump($ar);die;
2、快速排序
1 function quick_sork($array) 2 { 3 if(count($array) <= 1) return $array; 4 $key = $array[0]; 5 $left_arr = array(); 6 $right_arr = array(); 7 for($i=0;$i<count($array);$i++){ 8 if($array[$i]<$key){ 9 $left_arr[] = $array[$i]; 10 }elseif($array[$i]>$key){ 11 $right_arr[] = $array[$i]; 12 } 13 } 14 $left_arr = quick_sork($left_arr); 15 $right_arr = quick_sork($right_arr); 16 return array_merge($left_arr,array($key),$right_arr); 17 }
3、选择排序
1 function select_sort($array){ 2 $temp = 0; 3 for($i = 0;$i < count($array) - 1;$i++){ 4 $minVal = $array[$i]; //假设$i就是最小值 5 $minValIndex = $i; 6 for($j = $i+1;$j < count($array);$j++){ 7 if($minVal > $array[$j]){ //从小到大排列 8 $minVal = $array[$j]; //找最小值 9 $minValIndex = $j; 10 } 11 } 12 $temp = $array[$i]; 13 $array[$i] = $array[$minValIndex]; 14 $array[$minValIndex] = $temp; 15 } 16 return $array; 17 }