您好,登錄后才能下訂單哦!
本文實例講述了C語言排序算法之冒泡排序實現方法。分享給大家供大家參考,具體如下:
冒泡排序和改進的冒泡排序
/*------------------------------------------------------------------------------------------- Bubble_sort.h 冒泡排序: 時間復雜度為O(N^2) 改進的冒泡排序: 時間復雜度仍為O(N^2) 一般的冒泡排序方法有可能會在已經排好序的情況下繼續比較,改進的冒泡排序 設置了一個哨兵flag,如果一次for循環沒有進行交換,則元素已經排好序,由哨兵控制退出循環。 -------------------------------------------------------------------------------------------*/ #ifndef BUBBLE_SORT_H #define BUBBLE_SORT_H #include "typedef.h" #include "swap.h" //冒泡排序 void Bubble_sort(T *a, int n) { for(int i=n-1; i != 0; --i) for(int j=0; j != i; ++j) if(a[j+1] < a[j]) swap(a[j+1],a[j]); } //改進的冒泡排序 void Improved_Bubble_sort(T *a, int n) { for(int i=n-1; i != 0; --i) { bool flag = true; for(int j=0; j != i; ++j) //這一趟遍歷如果沒有交換,則已完成排序 if(a[j+1] < a[j]) { swap(a[j+1],a[j]); flag = false; } if(flag == true) break; } } #endif
希望本文所述對大家C語言程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。