一:冒泡演算法是怎么樣去對一堆無序數字進行排序的?
1.首先我先說明一下冒泡排序的特點:冒泡排序特點就是每一趟排序把最大的數字找出來并且同時放在最后,這樣通過有限次的排序后,有限-無序-序列的數字就會被排序成有序序列,
2.那么冒泡演算法是如何對數字進行排序的呢?
概念:以第一個數字為首,與后面第二個數字進行比較,如果第一個數字比第二個數字大,那么就把第一個數字與第二個數字的位置進行交換,否則該數字位置不變,然后第二個數字又與第三個數字進行比較,如果第二個數字大于第三個數字的話,則第二個數字與第三個數字進行位置交換......一直重復這樣的操作,那么一趟排序下來就可以找出該序列的最大值了,(注意:每一趟排序的時候,之前所有排序出來的最大值不再參與本次排序)
下面是對:1 23 4 98 70 10 9 這一無序數字序列進行第一趟排序
①:1比23小,不調換位置,此時序列為:1 23 4 98 70 10 9
②:23比4大,調換位置,此時序列為:1 4 23 98 70 10 9(23與4調換了位置)
③:23比98小,不調換位置,此時序列為:1 4 23 98 70 10 9
④:98比70大,調換位置,此時序列為:1 4 23 70 98 10 9(98與70調換了位置)
⑤:98比10大,調換位置,此時序列為:1 4 23 70 10 98 9(98與10調換了位置)
⑥:98比9大,調換位置,此時序列為:1 4 23 70 10 9 98(98與9調換了位置)
需要注意的是,當進行第二趟排序的時候,是不需要與98這個數字比較的,因為第一趟排序可以把無序序列中的最大數字排在后面,而第二趟就是把第二大的數字放在后面,第三趟排序就是把第三大的數字放在后面.......
如果覺得難以理解的朋友可以在草稿紙上畫兩個杯子,一號杯子裝著所有的無序數字,二號杯子則為空,把每一趟排序出來的數字有序地放在二號杯子里面,然后對一號杯子重新排序,你會發現當你第二次對一號杯子進行排序的時候,所找出來的那個最大數字其實就是原來一號杯子所有數字的第二大數字,而第三次對一號杯子排序則找出來的是原有序列的第三大的數字,
二:代碼實作如下:

運行結果如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/289646.html
標籤:其他
