氣泡排序的優化

2021-07-29 03:46:29 字數 847 閱讀 1982

基本思想:氣泡排序(預設是從小到大排序)是指在陣列中,遍歷0-n-1的元素陣列,第乙個數a與第二個數b進行對比,若a>b,則交換,否則,不交換。然後第二個數b與第三個數c進行對比,以此類推直到到處第二個元素與最後乙個元素進行對比。這時,第一趟排序結束後,就將最大值 放在了陣列的最後一位,然後遍歷0到n-2的元素陣列,以此類推。

方法:

冒泡(沒優化):通過兩層for迴圈實現。

public static void bubble(int array) }}

}

冒泡優化一:①設定整型flag初始化為陣列長度;

②使用while遍歷陣列,迴圈條件flag>0,每次遍歷,k = flag,flag = 0。

③陣列迴圈直到k,到當發生交換時,將i賦值給flag。

④當flag不大於0時,代表陣列中最多只有乙個陣列元素了,所以無法再次交換了。跳出,排序結束。

flag代表的是最後一次發生交換的位置,也就是說後面的已經不再需要交換,因為後面的都大於前面的所有陣列元素。

public static void bubble(int array)}}

}

冒泡優化二:假設排序一共需要7趟,但是排序時可能第二趟就已經將陣列排序好了,所以這時就不再需要繼續下一趟了。這時我們可以加乙個flag去標記不再發生交換的哪一趟(第三趟),這是乙個優化的點。**如下:

public static void bubble(int array)}}

}

C 氣泡排序 氣泡排序的優化

本文包含氣泡排序的三種實現方式 分別為氣泡排序初級版,公升級版,終級版 自己起的名字 使用時只要使用終極版就本以了,終級版為公升級版的優化版本 至於初極版和公升級版只是為了幫助理解 氣泡排序的時間複雜度為o n include include include include include incl...

氣泡排序以及氣泡排序的優化

很早接觸過氣泡排序法,但一直沒有真正的理解,只是為了記住而學習,今天又重新看了一下,其實氣泡排序法第一次排序會把最大的冒到最上面,第二次會把次大的泡冒到最大的後面,一次類推 另外在排序的次數上會逐漸減少。看 void bubble sort int a,int n 其實還可以優化一下,當發現沒有進行...

氣泡排序 優化後的氣泡排序

氣泡排序法 演算法原理 依次比較相鄰兩個元素的大小,若後面的比前面的小,則交換兩個元素的位置 對每一對相鄰元素作同樣的工作,從第一對到最後一對。進行一輪比較交換下來,最後的元素就會是最小的數了,這個數就不用參與後面的比較操作了 思路 遍歷陣列,對陣列中相鄰的兩個元素進行比較,如果需要公升序,前乙個資...