php 幾種排序方式

1.冒泡排序

function m_sort($arr)

{

    $l = count($arr);

    if($l==0) return false;

  

    for($i=0;$i<$l-1;$i++)

    {

        for($j=$i+1;$j<$l-1;$j++)

       {

            if($arr[$i]>$arr[$j])

           {

              $temp   = $arr[$i];

              $arr[$i] = $arr[$j];

              $arr[j]   = $temp;

           }

       }

    }

  

   return $arr;

}

 

2.插入排序

function i_sort($arr)

{

    $l = count($arr);

    if($l==0) return false;

  

    for($i=1;$i<$l;$i++)

    {

           

        $t = $arr[i]; 

        for($j=$i-1;$arr[j]>$t&&$j>=0;$--)

       { 

         $arr[j+1] = $arr[j];      

      }

      $arr[j+1] =$t;

    }

  

   return $arr;

}

 

3.選擇排序

function select_sort($arr)  
{  
    $len = count($arr);  
    if($len <= 0) return false;  
    for($i=0; $i<$len; $i++)  
    {  
        $min = $i;  
        for($j=$i+1; $j<$len; $j++) //記錄剩下中最小那的  
        {  
            if($arr[$j]<$arr[$min]) $min = $j;  
        }  
        if($min != $i) //把當前數與該最小數交換  
        {  
            $temp = $arr[$min];  
            $arr[$min] = $arr[$i];  
            $arr[$i] = $temp;  
        }  
    }  
    return $arr;  

 

4.快速排序

function quick_sort($arr)  
{  
    $len = count($arr);  
    if($len <= 1) return $arr;  
    $mid = $arr[0]; //以此數爲基準拆分爲兩個數組  
    $l = $r = array();  
    for($i=1; $i<$len; $i++)  
    {  
        if($arr[$i]<$mid) $l[] = $arr[$i];  
        else $r[] = $arr[$i];  
    }  
    $l = quick_sort($l);  
    $r = quick_sort($r);  
    return array_merge($l, array($mid), $r);  

 


轉載:http://blog.csdn.net/linvo/archive/2009/02/16/3893721.aspx

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章