排序演算法入門之氣泡排序優化

2021-06-12 08:21:41 字數 490 閱讀 6843

先來說說,氣泡排序哪些地方需要優化:

那麼如何優化?

通過觀察可以看到,造成沒必要的操作主要原因是後面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的值,如果判斷當前一輪操作沒有元素有位置調換...

排序演算法入門之氣泡排序

在開發中,對一組資料進行有序地排列是經常需要做的事情,所以掌握幾種甚至更多的排序演算法是絕對有必要的 本文章介紹的是排序演算法中較簡單的一種演算法 氣泡排序 題外話 在深入學習更多排序演算法後和在實際使用情況中,氣泡排序的使用還是極少的。它適合資料規模很小的時候,而且它的效率也比較低,但是作為入門的...