氣泡排序兩個 for 迴圈分別有什麼作用?能用最簡單的話解釋嗎?

時間 2021-06-02 18:03:53

1樓:

氣泡排序演算法的運作如下:

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。https://

zh.wikipedia.org/wiki/%

E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F

這個是維基百科的解釋,如果還不理解,最好的辦法就是自己去斷點除錯一下,或者在紙上模擬一下程式執行的過程。

以下是我個人的解釋你可以參考下:

其實就是把大的那個數不斷的向後排,一次迴圈之後最後的那個數肯定是最大的那個。然後在下次迴圈中剔除那個最大的數,再來一輪迴圈。

需要排序的列表List

List = [2,1,5,7,0]

0.[1,2,5,7,0]

1.[1,2,5,7,0]

2.[1,2,5,7,0]

3.[1,2,5,0,7]

2樓:

想想有一群泡泡

其中乙個泡泡跑到乙個泡小妹說,小妹小妹你過來咱倆比比誰大,小妹說哇你好大,於是他跑到了泡小妹前面,又跟前面的乙個泡大哥說,大哥,咱倆比比誰大唄。泡大哥看了他一眼他就老實了。這就是內層的for,那個泡泡跟每個人都比一次。

話說那個泡泡剛老實下來,另乙個泡泡又開始跟別人比誰大了,這就是外層的for,每個泡泡都會做一次跟其他泡泡比個沒完的事。

3樓:justjavac

本來想上個直觀圖:發現知乎不支援 gif 格式,給個鏈結吧http://

upload.wikimedia.org/wikipedia/commons/3/37/Bubble_sort_animation.gif

對於「氣泡排序」演算法,核心是冒泡。如何冒泡?也就是說,把陣列中最小的那個往上,冒的過程就是和他相鄰的元素交換

這個冒的過程就是內迴圈。

經過了乙個冒的過程,可以使乙個最小的元素冒出來,如果陣列裡面有 n 個元素,就得冒 n-1 次,這就是外迴圈。

附我一篇博文:為什麼說任何基於比較的演算法將5個元素排序都需要7次?

兩個for迴圈能處理哪些問題?

睡懶覺的花布 控制輸出圖案,比如九九乘法表 實現用窮舉法解決問題,比如百錢買百雞 實現對二維陣列的訪問和應用。等等。核心特徵和作用在於2吧。 可以遍歷二維陣列 例如俄羅斯方塊,貪吃蛇的棋盤 乙個影象的畫素,可以實現氣泡排序。等等。當然,本質上,這只不過是三種基本程式結構 順序,分支跳轉,迴圈 之一。...

去了兩個寺廟許願,分別去兩個寺廟還願嗎?但是去第乙個寺廟時不確定許沒許這個願望,怎麼辦呀?

巨乘法師 印度巴基斯坦阿富汗等地比你虔誠萬倍的的佛國佛族在地獄發來賀電 難道當年俺們對寺廟發的願就是讓自己國家民族被敵人用最殘忍手段滅族不成?為什麼佛菩薩保佑俺們滅族 Jet 佛陀兩千多年前已經涅槃了,你可以理解為佛已經不存在了。所以佛不可能滿足你的願望,即便佛在世時也不可能滿足你的願求。佛只是乙個...

寶寶2個月了,媽媽在家待著和去上班分別有什麼得失?

陳莉 我大寶就是三個月後回歸職場,現在二寶9個月一直自己帶,感受分享一下吧 1.大寶比較膽小怯懦,不敢主動去探索和社交。二寶現在抱出去就開始跟人交流了,總啊啊啊的喊人聊天。2.二寶安全感足,從6月大就開始睡整覺了,之前大寶是半夜要醒好幾次確認媽媽在身邊的 3.之前我上班,經濟就比較寬裕,大寶就報了早...