冒泡排序(Bubble Sort)也是一種簡(jiǎn)單直觀的排序算法。 它重復(fù)地走訪過(guò)要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過(guò)來(lái)。 走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說(shuō)該數(shù)列已經(jīng)排序完成。
1.比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。(這里是從小到大排列的思路)
2.對(duì)每一對(duì)相鄰元素作同樣的工作,從開(kāi)始第一對(duì)到結(jié)尾的最后一對(duì)。這步做完后,最后的元素會(huì)是大的數(shù)。
3.繼續(xù)每次對(duì)越來(lái)越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。?
需要注意的是:N個(gè)數(shù)字只需要排列N-1次。因?yàn)槊芭菖判蛴幸粋€(gè)特點(diǎn),如果這個(gè)程序是從大到小排序,所以第一輪排序以后,最小的數(shù)就會(huì)浮到最右面;第二輪排序以后,第二小的數(shù)會(huì)浮到倒數(shù)第二個(gè)位置;第三輪排序以后,第三小的數(shù)會(huì)浮到倒數(shù)第三個(gè)位置……也就是說(shuō),排序多少輪,就有多少個(gè)數(shù)字已經(jīng)按排序要求排好了,所以N個(gè)數(shù)中N-1個(gè)數(shù)排好以后,最后一個(gè)數(shù)字然也到了自己的位置上,無(wú)需排列。
代碼演示 :用冒泡排序?qū)⒁唤M數(shù)從小到大輸出
//關(guān)于冒泡排序的詳解
#includeint main()
{
int arr[] = {2,4,6,8,10,9,7,5,3,1,0}; //定義一個(gè)數(shù)組,放入要排列的數(shù)字
int sz = sizeof(arr) / sizeof(arr[0]); //計(jì)算數(shù)組大小
int i = 0; //中間變量,用來(lái)計(jì)算冒泡的趟數(shù)
for (i = 0; i< sz - 1; i++) //sz-1趟
{
int j = 0; //中間變量,用來(lái)代表數(shù)組的下標(biāo)
for (j = 0; j< sz - i - 1; j++)//第i趟比較的是下標(biāo)為sz-i-1與下標(biāo)為sz-i-2的數(shù)
{
if (arr[j] >arr[j + 1]) //從小到大排序,如果前一個(gè)數(shù)比后一個(gè)數(shù)大,交換這兩個(gè)數(shù)的值
{
int t = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = t;
}
}
}
for (i = 1;i
結(jié)果:?
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧