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

2021-08-19 14:28:25 字數 789 閱讀 6153

#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) / sizeof(array[0])陣列元素個數

}} for (i = 0; i < 10; i++)

//優化的氣泡排序演算法

int array1[10] = ;

int flag = 1; //設定標記變數

for (i = 0; i < 10 && flag; i++)

後,這個時候flag為1,

進入下一次迴圈,發現迴圈後,沒有發生交換,說明排序完成,不用繼續迴圈,直接彈出迴圈

*/for (j = 9; j > i; j--)

}} for (i = 0; i < 10; i++)

system("pause");

return 0;

}void swap(int *a, int *b)

參考:排序演算法入門之氣泡排序

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

那麼如何優化?

通過觀察可以看到,造成沒必要的操作主要原因是後面8個數的順序都已經是有序。所以,我們可以通過設定乙個標記變數,標記數列中的數是否在迴圈結束前就已經排好序

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

先來說說,氣泡排序哪些地方需要優化 那麼如何優化?通過觀察可以看到,造成沒必要的操作主要原因是後面8個數的順序都已經是有序。所以,我們可以通過設定乙個標記變數,標記數列中的數是否在迴圈結束前就已經排好序 include void swap int a,int b int main int i,j i...

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

氣泡排序優化演算法思想 我們通過在程式定義了乙個bool型別的flag變數,用來判斷往後的迴圈當中,陣列是否已經是有序的,每一輪迴圈都會設定其值為true,當有元素對調位置時,就將flag的值設定為true,表示該陣列還不是有序陣列。每一輪都要判斷flag的值,如果判斷當前一輪操作沒有元素有位置調換...

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

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