/*
氣泡排序基本思想
將n個記錄看作按縱向排列,每趟排序時自下至上對每對相鄰記錄進行比較,若次序不符合要求(逆序)就交換。每趟排序結束時都能使排序範圍內關鍵字最小的記錄象乙個氣泡一樣公升到表上端的對應位置,整個排序過程共進行n-1趟,依次將關鍵字最小、次小、第三小…的各個記錄「冒到」表的第乙個、第二個、第三個… 位置上。
初態 第1趟 第2趟 第3趟 第4趟 第5趟 第6趟 第7趟
12 12 12 12 12 12 12
38 20 20 20 20 20 20
20 38 25 25 25 25 25
46 25 38 38 38 38 38
38 46 38 38 38 38 38
74 38 46 46 46 46 46
91 74 74 74 74 74 74
25 91 91 91 91 91 91
*///列印陣列
void printarray(int array , int n)
}if (flag == 0) /*本趟排序未發生交換,提前終止演算法*/
break;
/*printf("第%d趟排序結果: \n",i+1);
printarray(array,n);*/}
}void testbubblesort()
;bubblesort(array,8);
printarray(array,8);
}
實現氣泡排序演算法
氣泡排序 bubble sort 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,故名。氣泡排序演...
氣泡排序演算法實現
氣泡排序,顧名思義就跟生活中的 冒泡 現象相似 大的泡泡被壓在下面就會自主地往上浮起。在陣列中,如果讓乙個無序的陣列有序 例如公升序 那麼在陣列左側的較大的數就應該自主地向右移動。因此,從左向右開始,依次與相鄰的 右側 數進行比較,如果arr i arr i 1 則交換二者位置,i就變為了i 1 即...
氣泡排序演算法實現
氣泡排序基本思想 將n個記錄看作按縱向排列,每趟排序時自下至上對每對相鄰記錄進行比較,若次序不符合要求 逆序 就交換。每趟排序結束時都能使排序範圍內關鍵字最小的記錄象乙個氣泡一樣公升到表上端的對應位置,整個排序過程共進行n 1趟,依次將關鍵字最小 次小 第三小 的各個記錄 冒到 表的第乙個 第二個 ...