#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的值,如果判斷當前一輪操作沒有元素有位置調換...
排序演算法入門之氣泡排序
在開發中,對一組資料進行有序地排列是經常需要做的事情,所以掌握幾種甚至更多的排序演算法是絕對有必要的 本文章介紹的是排序演算法中較簡單的一種演算法 氣泡排序 題外話 在深入學習更多排序演算法後和在實際使用情況中,氣泡排序的使用還是極少的。它適合資料規模很小的時候,而且它的效率也比較低,但是作為入門的...