冒泡排序

冒泡排序(優(yōu)化)

1.比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

2.對每一對相鄰元素作同樣的工作,從開始第一對到結(jié)尾的最后一對。在這一點,最后的元素應該會是最大的數(shù)。

3.針對所有的元素重復以上的步驟,除了最后一個。

4.持續(xù)每次對越來越少的元素重復上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。

int array[] = {3,7,5,2,9,4,1,8,6};

int count = sizeof(array) / sizeof(array[0]);

int flag = 0;//0無序 1 有序

for (int i = 0; i <? count - 1 &&flag == 0 ; i ++) {

flag = 1; // 假定有序

for (int j = 0; j < count - i - 1; j ++) {

if (array[j] > array[j + 1]) {

int tem = array[j];

array[j] = array[j + 1];

array[j + 1] = tem;

flag = 0; //確定無序

}

}

}

for (int i = 0; i < count ; i ++) {

printf("[%2d] : %d\n", i, array[i]);

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容