如何用php實現各種排序演算法

來源:互聯網
上載者:User
本篇文章主要介紹如何用php實現各種排序演算法,冒泡排序,交換排序,選擇法排序,插入法排序,快速排序,根據實際情況可選擇不同的排序演算法。效率也有所不同。 重要的還是先理解了演算法,實現起來才水到渠成。感興趣的朋友參考下,希望對大家有所協助。

冒泡排序:

<?php    function BubbleSort($arr){    $num = count($arr);    for($i=1;$i<$num;$i++){    for($j=$num-1;$j>=$i;$j--){    if($arr[$j]<$arr[$j-1]){    $iTemp = $arr[$j-1];    $arr[$j-1] = $arr[$j];    $arr[$j] = $iTemp;    }    }    }    return $arr;    }    ?>

交換法排序:

<?php    function ExchangeSort($arr){    $num = count($arr);    for($i=0;$i<$num-1;$i++){    for($j=$i+1;$j<$num;$j++){    if($arr[$j]<$arr[$i]){    $iTemp = $arr[$i];    $arr[$i] = $arr[$j];    $arr[$j] = $iTemp;    }    }    }    return $arr;    }    ?>

選擇法排序:

<?php    function SelectSort($arr){    $num = count($arr);    for($i=0;$i<$num-1;$i++){    $iTemp = $arr[$i];    $iPos = $i;    for($j=$i+1;$j<$num;$j++){    if($arr[$j]<$iTemp){    $iTemp = $arr[$j];    $iPos = $j;    }    }    $arr[$iPos] = $arr[$i];    $arr[$i] = $iTemp;    }    return $arr;    }    ?>

插入法排序:

<?php    function InsertSort($arr){    $num = count($arr);    for($i=1;$i<$num;$i++){    $iTemp = $arr[$i];    $iPos = $i-1;    while(($iPos>=0) && ($iTemp<$arr[$iPos])){    $arr[$iPos+1] = $arr[$iPos];    $iPos--;    }    $arr[$iPos+1] = $iTemp;    }    return $arr;    }    ?>

快速排序 :

<?php    function QuickSort($arr){    $num = count($arr);    $l=$r=0;    for($i=1;$i<$num;$i++){    if($arr[$i] < $arr[0]){    $left[] = $arr[$i];    $l++;    }else{    $right[] = $arr[$i];    $r++;    }    }    if($l > 1){    $left = QuickSort($left);    }    $new_arr = $left;    $new_arr[] = $arr[0];    if($r > 1){    $right = QuickSort($right);    }    for($i=0;$i<$r;$i++){    $new_arr[] = $right[$i];    }    return $new_arr;    }    $arr = array(7,1,6,5,2);    $arr_new = QuickSort($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.