~会飞的鱼

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
 1 <?php
 2 function bubble_sort($arr){
 3     $len = count($arr);
 4     for($i=0;$i<$len-1;$i++){
 5         $flag = false;
 6         for($j=0;$j<$len-1-$i;$j++){
 7             if($arr[$j] > $arr[$j+1]){
 8                 $temp = $arr[$j];  
 9                 $arr[$j] = $arr[$j+1];  
10                 $arr[$j+1] = $temp;  
11                 $flag = true;
12             }
13         }
14         if(!$flag){
15             return $arr;
16         }
17     }
18     return $arr;
19 }
20 $arr= array(1,4,2,98,43,24,5,7);
21 print_r(bubble_sort($arr));
22 
23 
24 ?>
 1 function quik_sort($arr) {
 2     if (count($arr) < 2) {
 3         return (array)$arr;
 4     }
 5  
 6     $base = $arr[0];
 7     $leftArr = array();
 8     $rightArr = array();
 9     for ($i=1, $len=count($arr); $i < $len; $i++) { 
10         if ($arr[$i] < $base) {
11             $leftArr[] = $arr[$i];
12         } else {
13             $rightArr[] =  $arr[$i];
14         }
15     }
16  
17     $leftArr = quik_sort($leftArr);
18     $rightArr = quik_sort($rightArr);
19  
20     return array_merge($leftArr, array($base), $rightArr);
21 }
function select_sort($arr) 
{    
  $temp=0; 
  for($i=0;$i<count($arr)-1;$i++) 
    { 
      $minval=$arr[$i];  //每一次认为第i个数是最小值 
      $minindex=$i; 
      for($j=$i+1;$j<count($arr);$j++) 
          { 
          //说明目前的值并不是最小值 
          if($minval>$arr[$j]) 
              { 
               $minval=$arr[$j]; 
               $minindex=$j; 
              } 
          } 
          //内层for循环结束后再进行交换  这正是选择排序比冒泡排序优越的地方 
          $temp=$arr[$i]; 
          $arr[$i]=$arr[$minindex]; 
          $arr[$minindex]=$temp; 
    } 
  
} 

 

posted on 2013-09-06 11:17  ~会飞的鱼  阅读(218)  评论(0编辑  收藏  举报