氣泡排序可以說是眾多排序演算法之中較簡單的一種,思想與選擇排序類似,選擇排序每一次遍歷取出最小的數放在首位(暫時這樣認為),而氣泡排序則每一次遍歷把最大的數放在陣列的最後乙個位置,舉個例子:
12,56,34,789,8,28
第一次遍歷:12,34,56,8,28,789
第二次遍歷:12,34,8,28,56,789
第三次遍歷:12,8,28,34,56,789
第四次遍歷:8,12,28,34,56,789
第五次遍歷:8,12,28,34,56,789
通常用雙重迴圈,外層迴圈的次數為n-1次(n為排序的個數),陣列**實現如下:
1void bubble_sort(int array, int length)2 7
bool flag = true;
8int temp = 0;910
for (int outer = length - 1; outer > 0 && flag; --outer)
11
22 }
23 }
24 }
鍊錶**實現如下:
void bubble_link_sort(struct node *head)q = q->next;
}p = p->next;
if (null != p)
}}
菜鳥學演算法 選擇排序
例如有一樣本 3,6,8,9,5,4,7,1,2,0 使用選擇排序從小到大排序過程如下 樣本 3,6,8,9,5,4,7,1,2,0 有序集合 第一次選擇 最小值 3,比較值 6,3 6,最小值 3,比較值 8,3 8,最小值 3,比較值 9,3 9,最小值 3,比較值 5,3 5,最小值 3,比較...
人人都來學演算法 之 氣泡排序
冒牌排序是大學學習資料結構最先學習的排序演算法,平均時間效率較快速排序等方法效率低,但是演算法也最簡單,就是每次遍歷都把最大的元素 公升序 交換到當前的最後乙個位置。這個演算法也是筆試中最最常見,難度也是考察程式設計能力的最低要求。include using std cout using std e...
菜鳥對陣列排序演算法之氣泡排序的學習
選自 c 從入門到精通 記錄本人的學習過程。氣泡排序方法以簡潔的思想與實現方法而備受青睞,是廣大初學者最先接觸的乙個排序演算法。這種方法排序陣列元素的過程總是小數往前放,大數往後放,類似水中氣泡往上公升的動作,所以稱做氣泡排序。1.基本思想 對比相鄰的元素值,如果滿足條件就交換元素值,把較小的元素移...