先來說說,氣泡排序哪些地方需要優化:
那麼如何優化?
通過觀察可以看到,造成沒必要的操作主要原因是後面8個數的順序都已經是有序。所以,我們可以通過設定乙個標記變數,標記數列中的數是否在迴圈結束前就已經排好序
**:
#include void swap(int *a, int *b);
int main()
; int i, j;
int flag = 1; //設定標記變數
for (i = 0; i < 10 && flag; i++)
}} for (i = 0; i < 10; i++)
return 0;
}void swap(int *a, int *b)
根據優化過的**,當最好情況的時候,氣泡排序的時間複雜度是o(n) 排序演算法入門之氣泡排序優化
include include include void swap int a,int b int main int i,j int array length sizeof array sizeof array 0 for i 0 i array length i sizeof array size...
排序演算法之 氣泡排序優化
氣泡排序優化演算法思想 我們通過在程式定義了乙個bool型別的flag變數,用來判斷往後的迴圈當中,陣列是否已經是有序的,每一輪迴圈都會設定其值為true,當有元素對調位置時,就將flag的值設定為true,表示該陣列還不是有序陣列。每一輪都要判斷flag的值,如果判斷當前一輪操作沒有元素有位置調換...
排序演算法入門之氣泡排序
在開發中,對一組資料進行有序地排列是經常需要做的事情,所以掌握幾種甚至更多的排序演算法是絕對有必要的 本文章介紹的是排序演算法中較簡單的一種演算法 氣泡排序 題外話 在深入學習更多排序演算法後和在實際使用情況中,氣泡排序的使用還是極少的。它適合資料規模很小的時候,而且它的效率也比較低,但是作為入門的...