1、比較相鄰的元素,前者大就交換
2、每對相鄰元素都比較
3、對所有元素都重複以上步驟(最後乙個元素不用)
這個程式是正確的,可以將乙個陣列公升序排列,但如果給的陣列已經是公升序排列(例如a=;?),這個時候再執行len-1趟就會浪費時間,所以給出了如下改進
#define _crt_secure_no_warnings 1
#includevoid bubblesort(int a, int len)
} if (flag == 0) //沒有交換,跳出迴圈
}}int main()
; int len = sizeof(a) / sizeof(a[0]);
bubblesort(a,len);
for (int i = 0; i < len; i++)
return 0;
}
氣泡排序及其改進
1.排序思想 氣泡排序也是非常簡單的排序演算法,易於理解。要點 1 也把陣列看作有序和無序部分,初始時將整個陣列視為無序 2 每次遍歷陣列中的無序部分,且兩兩比較,並將兩者中較大的元素置於後面一位,則一趟遍歷完成後,最大元素自然 沉到 無序部分的最後一位 3 減小無序部分的長度,迴圈第二步,直到陣列...
氣泡排序及其改進
氣泡排序作為最經典的演算法,雖然對大資料無用武之地。但是對於少量的資料,我們用氣泡排序,在時間複雜度上也是可以接受的,又因為它實現起來比較簡單,所以也經常的被人們使用。並且可以通過一些方法來改進最原始的氣泡排序,這種改進演算法的思路也有可取之處。前一兩天參加宜搜科技的筆試,就考到了氣泡排序。我當時就...
氣泡排序及其改進演算法
第乙個排序函式 sort1 為氣泡排序的典型實現,第二和第三個為改進後的排序函式 include include define len 20000 double sort1 int int double sort2 int int double sort3 int int int main int ...