PHP排序演算法

來源:互聯網
上載者:User

標籤:style   blog   color   os   strong   for   

插入排序,由第二位開始,一個個往前適當的位置(比左邊大,比右邊小)插入

 1 <?php 2  3 $ary = array(39, 432, 5, 37, 43, 100, 32, 12); 4  5 for ($i = 1; $i < count($ary); $i++) { 6  7     $j = $i; 8  9     while ($j > 0 && $ary[$j - 1] > $ary[$j]) {10 11         $tmp = $ary[$j];12         $ary[$j] = $ary[$j - 1];13         $ary[$j - 1] = $tmp;14         $j--;15     }16 17 }18 for ($i = 0; $i < count($ary); $i++) {19     echo $ary[$i] . "<br/>";20 }21 ?>

 

冒泡排序,從最尾開始,和前一個比較,將小的移前,最後得出最小的放在第一位.

重複一次,將次小的放在第二位...

最終得出結果

 1 <?php 2  3 $ary = array(39, 432, 5, 37, 43, 100, 32, 12); 4  5 for ($i = 0; $i < count($ary); $i++) { 6  7     $j = count($ary) - 1; 8  9     while ($j > $i) {10         if ($ary[$j - 1] > $ary[$j]) {11         $tmp = $ary[$j];12         $ary[$j] = $ary[$j - 1];13         $ary[$j - 1] = $tmp;14         }15         $j--;16     }17 18 }19 for ($i = 0; $i < count($ary); $i++) {20     echo $ary[$i] . "<br/>";21 }22 ?>

 

選擇排序,由左邊起第一個起,找出最小的和第一個交換位置,再從第二個起,找出最小的和第二個交換位置,重複可得結果

 

 1 <?php 2  3 $ary = array(39, 432, 5, 37, 43, 100, 32, 12); 4  5             for ( $i = 0; $i < count($ary) - 1; $i++) 6             { 7                 $j = $i; 8                 $minpos = $i; 9                 $first = $ary[$i];10                 while ($j < count($ary) - 1)11                 {12                     if ($ary[$minpos] > $ary[$j + 1])13                     {14                         $minpos = $j + 1;15                     }16                     $j++;17                 }18                 $ary[$i] = $ary[$minpos];19                 $ary[$minpos] = $first;20             }21 22 for ($i = 0; $i < count($ary); $i++) {23     echo $ary[$i] . "<br/>";24 }25 ?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.