這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端(公升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名「氣泡排序」。
實質是從當前元素起,向後依次比較每一對相鄰元素,滿足條件就交換。
對所有元素均重複以上步驟,直至最後乙個元素
寫**無非就是外迴圈表示排序的次數
內迴圈表示每次比較多少次
void bubblesort(int nums,int len)
} }}
當內迴圈執行一次未發生虛幻,那麼後面的排序是無意義的。
下面的這行**其實是在排序好後,相當於又進行了一次內迴圈。
而這次內迴圈相當於檢查,沒有交換則bool值改變,隨後 if 判斷退出排序。
我個人感覺最理想的就是剛好排序好,就退出迴圈。
void bubblesort(int nums,int len)
} if (ischange == false)//如果沒有交換,代表無需排序
}}
java氣泡排序的實現以及優化
氣泡排序原理 1 比較相鄰的兩個元素,如果前者大於後者則交換位置 2 這樣對陣列第0個資料到n 1個資料進行遍歷比較一次後,最大的資料會移動到最後一位。3 n n 1,如果n 0則排序完成 實現 package zks public class bubblesort package zks publ...
完整的氣泡排序實現以及原理
氣泡排序 比較次數的公式 n n 1 2 原理 相鄰元素兩兩比較,值較大者往後放,第一次比較完畢,最大值出現在了最大索引處。public class bubblesort system.out.println 氣泡排序前 for int i num 第一次比較 是為了防止陣列越界 num.lengt...
氣泡排序以及氣泡排序的優化
很早接觸過氣泡排序法,但一直沒有真正的理解,只是為了記住而學習,今天又重新看了一下,其實氣泡排序法第一次排序會把最大的冒到最上面,第二次會把次大的泡冒到最大的後面,一次類推 另外在排序的次數上會逐漸減少。看 void bubble sort int a,int n 其實還可以優化一下,當發現沒有進行...