幾種常見的排序演算法__演算法

來源:互聯網
上載者:User
<?php/** * @author wangdx * @date 2013-04-01 * 排序演算法 */$A=array(4,3,8,1,5);//bubble_sort($A);//insert_sort($A);//quick_sort($A);insert_sort($A);var_dump($A);//bubble_sort冒泡排序function bubble_sort(&$arr){$n=count($arr);for($i=0;$i<$n-1;$i++){for($j=$i+1;$j<$n;$j++){if($arr[$i]>$arr[$j]){$temp=$arr[$i];$arr[$i]=$arr[$j];$arr[$j]=$temp;}}}return $arr;}//insert_sort插入排序function insert_sort(&$arr) {    $n=count($arr);    for($i=1;$i<$n;$i++) {        $tmp=$arr[$i];        $j=$i-1;        while($arr[$j]>$tmp) {            $arr[$j+1]=$arr[$j];            $arr[$j]=$tmp;            $j--;            if($j<0)                break;        }    }    return $arr;}//快速排序(遞迴)function quick_sort(&$arr) {    $n=count($arr);    if($n<=1)        return $arr;    $key=$arr[0];    $left_arr=array();    $right_arr=array();    for($i=1;$i<$n;$i++) {        if($arr[$i]<=$key)            $left_arr[]=$arr[$i];        else             $right_arr[]=$arr[$i];    }    $left_arr=quick_sort($left_arr);    $right_arr=quick_sort($right_arr);    return $arr=array_merge($left_arr,array($key),$right_arr);}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.