冒泡排序

冒泡排序的原理是:從左到右橘霎,相鄰元素進(jìn)行比較虑凛。每次比較一輪碑宴,就會找到序列中最大的一個或最小的一個。這個數(shù)就會從序列的最右邊冒出來桑谍。
冒泡排序:
有兩種延柠,
一種是小泡向上冒,
一種是大泡向下沉霉囚。
首先捕仔,設(shè)待排序長為n匕积,
從后往前(從前向后)兩兩比較相鄰元素的值盈罐,若為逆序, (a[i-1]>a[i])闪唆,則交換他們盅粪,直到序列比較結(jié)束。

  • 例子(大泡下沉悄蕾,即從前向后比較)

交換過程中票顾,會將較大的元素一直向后移動础浮,故,會將最大的元素移動到最終的位置上

image.png

這樣就稱為一次冒泡過程

需要多少次冒泡過程奠骄?:

一共需要n-1次冒泡豆同,就可以將序列變成遞增的序列

為啥是n-1呢
因為排到最后,只剩兩個數(shù)了含鳞,我們只需要比較一次影锈,即可得到這兩個數(shù)的有序序列。

需要比較多少次?:

一共比較了(等差數(shù)列求和公式)次:n*(n-1)/2.

9個數(shù)第一次需要比較8次蝉绷,因為當(dāng)只有兩個數(shù)的時候鸭廷,比較一次即可排出順序。且每次比較都會少比較一次熔吗,因為每次比較都會使得一個數(shù)歸位辆床。所以一共比較8+7+6+5+4+3+2+1次,
冒泡排序是死的次數(shù),最壞最好的情況冒泡排序都會進(jìn)行相鄰的比較桅狠。區(qū)別在于最好的情況每次比較不交換元素讼载,最壞的情況每次都會交換相鄰元素而已

#include<stdio.h>
void bubbleSort(int *arr,int n)
{
    int m,i,j;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-1-i;j++)
            if(arr[j]>arr[j+1])
            {
                m=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=m;
            }
}
int main(){
    int arr[]={9,7,5,4,3,2};
    bubbleSort(arr,6);
    int i;
    for(i=0;i<6;i++){
        printf("%d\n",arr[i]);
    }
    return 0;
}
image.png
代碼分析:
for(i=0;i<n-1;i++){
        for(j=0;j<n-1-i;j++){
  }
}
首先i<n-1保證了循環(huán)執(zhí)行0~n-2次,

循環(huán)結(jié)束條件是i>=n-1,當(dāng)i=n-1時中跌,就結(jié)束了维雇,所以一共執(zhí)行了i從0到n-2,合計為n-1次冒泡晒他。
然后就是
當(dāng)i=0的時候吱型,需要比較n-1次,就想到了n-1
就是j<n-1很正常陨仅,然后為什么要-i呢津滞?
因為根據(jù)上述分析知道,每冒泡一次灼伤,就有一個數(shù)歸位触徐,
每次冒泡排序的次數(shù)就減少1,所以i每+1狐赡,j就要-1撞鹉。

i控制冒泡次數(shù),
j控制每次冒泡需要的排序次數(shù)颖侄。

 *arr運用指針鸟雏,使得傳過來的值都是實參和形參都一致???那個怎么說來著。
  • 從后向前比較的代碼:

通過設(shè)計flag來減少冒泡的次數(shù)览祖。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末孝鹊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子展蒂,更是在濱河造成了極大的恐慌又活,老刑警劉巖苔咪,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異柳骄,居然都是意外死亡团赏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門耐薯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馆里,“玉大人,你說我怎么就攤上這事可柿○伲” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵复斥,是天一觀的道長营密。 經(jīng)常有香客問我,道長目锭,這世上最難降的妖魔是什么评汰? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮痢虹,結(jié)果婚禮上被去,老公的妹妹穿的比我還像新娘。我一直安慰自己奖唯,他們只是感情好惨缆,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丰捷,像睡著了一般坯墨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上病往,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天捣染,我揣著相機(jī)與錄音,去河邊找鬼停巷。 笑死耍攘,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的畔勤。 我是一名探鬼主播蕾各,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼硼被!你這毒婦竟也來了示损?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤嚷硫,失蹤者是張志新(化名)和其女友劉穎检访,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仔掸,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡脆贵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了起暮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卖氨。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖负懦,靈堂內(nèi)的尸體忽然破棺而出筒捺,到底是詐尸還是另有隱情,我是刑警寧澤纸厉,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布系吭,位于F島的核電站,受9級特大地震影響颗品,放射性物質(zhì)發(fā)生泄漏肯尺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一躯枢、第九天 我趴在偏房一處隱蔽的房頂上張望则吟。 院中可真熱鬧,春花似錦锄蹂、人聲如沸氓仲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寨昙。三九已至,卻和暖如春掀亩,著一層夾襖步出監(jiān)牢的瞬間舔哪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工槽棍, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留捉蚤,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓炼七,卻偏偏與公主長得像缆巧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子豌拙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355