菜鳥也來學演算法之氣泡排序

2021-09-08 15:59:01 字數 724 閱讀 4803

氣泡排序可以說是眾多排序演算法之中較簡單的一種,思想與選擇排序類似,選擇排序每一次遍歷取出最小的數放在首位(暫時這樣認為),而氣泡排序則每一次遍歷把最大的數放在陣列的最後乙個位置,舉個例子:

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為排序的個數),陣列**實現如下:

1

void 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.基本思想 對比相鄰的元素值,如果滿足條件就交換元素值,把較小的元素移...