void
bubble_sort
(int arr,
int sz)}}
}void
pritn_arr
(int arr,
int sz)
}//氣泡排序
簡單優化改進(公升序排)
加乙個flag
void
bubble_sort
(int arr,
int sz)if(
0== flag)
break;}
}}void
pritn_arr
(int arr,
int sz)
}//氣泡排序
intmain()
;int sz =
sizeof
(arr)
/sizeof arr[0]
;pritn_arr
(arr, sz)
;printf
("\n");
bubble_sort
(arr, sz)
;pritn_arr
(arr, sz)
;system
("pause");
return0;
}
改進思路
對於0123456789本身就是排好的
一趟趟比較確實不值得。
進去第一趟,然後兩兩比較,如果執行了交換flag=1;
可事實上沒有進入交換的語句,那麼flag=0;
因此比較一趟就夠了,不用一趟一趟一直比下去了。
flag=0
if (0 == flag)
break;
注意事項
for (i = 0; i < sz - 1; i++)
}
j 由於每一輪當中乙個最大的元素歸位,即為一輪會排好乙個元素,下一輪無需對這個元素進行遍歷比較,故而需要在上面的式子的基礎上-i
今天看到一句話,我覺得說的就是我了。
關於自律,你時常撿起,也總是丟棄。
真的蠻慚愧的。一次次都是這樣,覺得自己一點也不酷。
氣泡排序(初級版)之C 實現
氣泡排序 初級版 之c 實現 一 源 bubblesortlow.cpp 1 氣泡排序思想 2從第乙個元素開始,對陣列中兩兩相鄰的元素比較,將值較小的元素放在前面,值較大的元素放在後面 3一輪比較完畢,乙個最大的數沉底成為陣列中的最後乙個元素,一些較小的數如同氣泡一樣上浮乙個位置。4n個數,經過n ...
初級排序 氣泡排序
氣泡排序 從第乙個數開始依此與下乙個數進行比較,若後者大於前者,則二者換位,否則不進行操作 然後讓第二個數與下乙個進行比較 依此這樣進行。一次大迴圈會將最大的那個數,放在後面 第二次大迴圈會將第二大的數放在倒數第二位 依次進行。最後便是有序的公升序數列。include using namespace...
初級演算法 氣泡排序
氣泡排序是一種比較常用的基礎的排序演算法,氣泡排序的基本思想是 每次比較兩個相鄰的元素,如果它們的順序錯誤就把它們交換 過來。下列是以從大到小排列為例講解。因為是按照從大到小排列所以越小的越靠後面 該演算法是通過迴圈巢狀實現的,首先外迴圈表示有n個數需要排序,因為是n個數所以只需要迴圈n 1次就可以...