2013年12月4日星期三

几种排序算法(PHP版)

冒泡排序
  1. function bubble_sort($arr 
  2.  
  3.     $len count($arr);  
  4.     if($len <= 0) return false;  
  5.     for($i=0; $i<$len-1; $i++)  
  6.      
  7.         for($j=$i+1; $j<$len-1; $j++)  
  8.          
  9.             if($arr[$i$arr[$j])  
  10.              
  11.                 $t $arr[$i];  
  12.                 $arr[$i$arr[$j];  
  13.                 $arr[$j$t 
  14.              
  15.          
  16.      
  17.     return $arr 
  18.  
 

插入排序
  1. function insert_sort($arr 
  2.  
  3.     $len count($arr);  
  4.     if($len <= 0) return false;  
  5.     for($i=1; $i<$len$i++)  
  6.      
  7.         $flag $arr[$i]; //待插入的数  
  8.         for($j=$i-1; $arr[$j]>$flag && $j>=0; $j--) //向前插入合适位置  
  9.          
  10.             $arr[$j+1] $arr[$j]; //比它大的逐个后移  
  11.          
  12.         $arr[$j+1] $flag 
  13.      
  14.     return $arr 
  15.  
 

选择排序
  1. function select_sort($arr 
  2.  
  3.     $len count($arr);  
  4.     if($len <= 0) return false;  
  5.     for($i=0; $i<$len$i++)  
  6.      
  7.         $min $i 
  8.         for($j=$i+1; $j<$len$j++) //记录剩下中最小那的  
  9.          
  10.             if($arr[$j]<$arr[$min]) $min $j 
  11.          
  12.         if($min != $i//把当前数与该最小数交换  
  13.          
  14.             $temp $arr[$min];  
  15.             $arr[$min$arr[$i];  
  16.             $arr[$i$temp 
  17.          
  18.      
  19.     return $arr 
  20.  
 

快速排序
  1. function quick_sort($arr 
  2.  
  3.     $len count($arr);  
  4.     if($len <= 1) return $arr 
  5.     $mid $arr[0]; //以此数为基准拆分为两个数组  
  6.     $l $r array();  
  7.     for($i=1; $i<$len$i++)  
  8.      
  9.         if($arr[$i]<$mid$l[] $arr[$i];  
  10.         else $r[] $arr[$i];  
  11.      
  12.     $l quick_sort($l);  
  13.     $r quick_sort($r);  
  14.     return array_merge($larray($mid), $r);  
  15.  
 

没有评论:

发表评论

上海松善实业有限公司

    上海松善实业有限公司是一家集多品牌销售于一体的电线电缆骨干企业,公司成立于2016年。 公司拥有国内各大品牌:起帆、远东、上上、江南、胜华等。     主要产品有:高低压电力电缆、橡套电缆、控制电缆、架空绝缘电缆、塑胶电缆、电子计算机电缆、通讯电缆、...