在工作中,可能經常需要對某個陣列進行排序,這個時候,就該展示排序演算法了。常見的排序演算法很多,像選擇排序、氣泡排序、快速排序等等。今天,主要總結下氣泡排序,面試中,可能也會經常問到,筆試寫氣泡排序等。
假如有乙個陣列:;
氣泡排序的思想:
第1次比較:將第乙個數和第二個數進行比較,如果第乙個數字大於第二個數字,則進行位置交換;
第2次比較:將第二個數和第三個數進行比較,如果第二個數字大於第三個數字,則進行位置交換;
第3次比較:將第三個數和第四個數進行比較,如果第三個數字大於第四個數字,則進行位置交換;
一直這樣比較,直到第一次比較結束,這樣比較完之後,當前陣列中最大的數就排到最後一位了;
第一次整體比較詳解過程如下:
原始陣列:23 2 15 68 99 17 36 75
第一次小比較:23和2比較,23比2大,則交換;比較後:2 23 15 68 99 17 36 75 ;
第二次小比較:23和15比較,23比15大,則交換:比較後:2 15
23 68 99 17 36 75 ;
第三次小比較:23和68比較,23比68小,不交換:比較後:2 15 23 68 99 17 36 75 ;
第四次小比較:68和99比較,68比99小,不交換:比較後:2 15 2368
99 17 36 75 ;
第五次小比較:99和17比較,99比17大,則交換:比較後:2 15 2368 17 99 36 75 ;
第六次小比較:36和99比較,99比36大,則交換:比較後:2 15 2368 1736
99 75 ;
第七次小比較:99和75比較,99比75大,則交換:比較後:2 15 23 68 1736 75
99 ;
第一次整體比較完之後,最大的數已經排在末尾,然後取第乙個數字,再重複上面的步驟,依次進行比較,直到所有數字比較完成。
**實現如下:
public static void main(string args) ;
for(int i=0;inumbers[j+1]) }}
system.out.println(arrays.tostring(numbers)); }
程式執行結果圖如下:
氣泡排序知識的總結完了,還有很多排序演算法,以後的文章中再總結。感覺開發工作要學的知識挺多的,但是我們要分清楚主次。知識雖然枯燥,但是我們多看多寫,就會記得更加的深刻。我們應該不斷的奮鬥,成就美好的人生。
氣泡排序 面試會經常被問到
include include include include void main for num 0 num 19 num for h 0 h 19 num h for num 0 num 20 num 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一...
排序演算法之氣泡排序
參考 氣泡排序演算法的運作如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。若...
排序演算法之氣泡排序
對於大多數學計算機的人來說,氣泡排序應該都是接觸的第一種排序方式,氣泡排序的排序思想是比較簡單的,它的演算法的是 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了...