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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值