PHP實現冒泡排序

來源:互聯網
上載者:User

《大話資料結構》中這樣介紹冒泡排序的基本思想:兩兩比較相鄰元素的關鍵字,如果反序則交換,直到沒有反序的記錄為止。也就是相鄰元素之間兩兩比較,如果前一個值大於後一個(或者前一個值小於後一個),則交換順序,所以這樣的話,最終的結果是從小到大(或者從大到小)的排序。

當然php有非常強大的排序函數,比如sort,asort等,所以也在運用php的時候也用不著自己寫排序函數,這裡只是用php實現下冒泡排序的思想。

 1 <?php 2     include_once './header.php'; 3  4     $bub = array(9,5,8,3,4,6,1,2,7,); 5     $sortarr = $asortarr = $bub; 6  7     //冒泡排序 8     $flag = true; 9     for($i=0; $i<count($bub)-1 && $flag; $i++){ //當flag為false時,已經排序完成,後面不再迴圈10     11         $flag = false;12         for($j=count($bub)-2; $j>=$i; $j--){13             14             if($bub[$j]>$bub[$j+1]){  //前面的數大於後面的數,交換位置15             16                 $temp = $bub[$j];17                 $bub[$j] = $bub[$j+1];18                 $bub[$j+1] = $temp;19                 $flag = true;20             }21         }22     }23     //對數組單元從低到高重新排序24     sort($sortarr);25     //對數組重新排序並保持索引關係26     asort($asortarr);27 28     echo '冒泡:';29     echo '<pre>';30     var_dump($bub);31 32     echo 'sort:';33     echo '<pre>';34     var_dump($sortarr);35 36     echo 'asort:';37     echo '<pre>';38     var_dump($asortarr);39 ?>

代碼的輸出結果:

來源:http://www.cnblogs.com/melonwong/p/6231305.html

聯繫我們

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