PHP冒泡排序演算法_PHP教程

來源:互聯網
上載者:User
基本概念
冒泡排序的基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1 個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複以上過程,仍從第一對數開始比較(因為可能由於第2個數和第3個數的交換,使得第1個數不再大於第2個數),將小數放前,大數放後,一直比較到最小數前的一對相鄰數,將小數放前,大數放後,第二趟結束,在倒數第二個數中得到一個新的最小數。如此下去,直至最終完成排序。
由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上升,所以稱作冒泡排序。
用二重迴圈實現,外迴圈變數設為i,內迴圈變數設為j。外迴圈重複9次,內迴圈依次重複 9,8,…,1次。每次進行比較的兩個元素都是與內迴圈j有關的,它們可以分別用a[j]和a[j+1]標識,i的值依次為1,2,…,9,對於每一個i, j的值依次為1,2,…10-i。

產生
在許多程式設計中,我們需要將一個數列進行排序,以方便統計,常見的排序方法有冒泡排序,二叉樹排序,選擇排序等等。而冒泡排序一直由於其簡潔的思想方法和比較高的效率而倍受青睞。

排序過程
設想被排序的數組R[1..N]垂直豎立,將每個資料元素看作有重量的氣泡,根據輕氣泡不能在重氣泡之下的原則,從下往上掃描數組R,凡掃描到違反本原則的輕氣泡,就使其向上”漂浮”,如此反覆進行,直至最後任何兩個氣泡都是輕者在上,重者在下為止。

排序實現過程如下:
49 38 65 97 76 13 27
38 49 65 97 76 13 27 比較第1個和第2個數,小的放前邊,大的放後邊 38 49 65 97 76 13 27 比較第2個和第3個數,小的放前邊,大的放後邊 38 49 65 97 76 13 27 比較第3個和第4個數,小的放前邊,大的放後邊 38 49 65 76 97 13 27 比較第4個和第5個數,小的放前邊,大的放後邊 38 49 65 76 13 97 27 比較第5個和第6個數,小的放前邊,大的放後邊 38 49 65 76 13 27 97 比較第6個和第7個數,小的放前邊,大的放後邊 至此,第一趟比較結束,得到以下排序: 38 49 65 76 13 27 97
然後按照第一趟排序的方法繼續比較,直到完成排序。

 = (345,4,17,6,52,16,58,69,32,8,234(=1;<();++(=()-1;>=;--([]<[-1 = [-1[-1] = [[] = 

http://www.bkjia.com/PHPjc/440331.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/440331.htmlTechArticle基本概念 冒泡排序的基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1 個和第2個數,將小數放前,大...

  • 聯繫我們

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