php基础排序算法

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 }
原文地址:https://www.cnblogs.com/wawjandcsws/p/11076351.html