亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        在教學(xué)中對冒泡排序算法的改進(jìn)

        2010-03-22 20:45:39施祖平
        通化師范學(xué)院學(xué)報 2010年12期
        關(guān)鍵詞:排序方法

        施祖平

        (南通紡織職業(yè)技術(shù)學(xué)院,江蘇 南通226007)

        1 引言

        在數(shù)據(jù)結(jié)構(gòu)教學(xué)過程中,排序是一個很重要的教學(xué)內(nèi)容.排序作為數(shù)據(jù)處理中的一種重要運算,其本質(zhì)是將一組數(shù)據(jù)元素的無序序列按一定的規(guī)律進(jìn)行重新排列,最終成為有序序列.在計算機(jī)處理排序時,花費的時間較多,通過改進(jìn)排序算法來提高系統(tǒng)的工作效率是非常有效的.排序的方法有很多,本文就冒泡排序法的算法提出一個改進(jìn)的探討.

        2 普通冒泡法

        冒泡法排序:通過比較在待排數(shù)組中相鄰元素的值來進(jìn)行,如果這些元素的第一個值比第二個值大就交換兩個值,然后比較下一組相鄰元素的值,在包括N個數(shù)據(jù)項的待排序的數(shù)據(jù)中,這個比較過程從下標(biāo)1和下標(biāo)2開始直到下標(biāo)N-1和N元素為止,這就是一趟比較,其結(jié)果使最大的數(shù)據(jù)被安置到最后一個記錄的位置上.一趟結(jié)束后,重新進(jìn)行第二趟對N-1個數(shù)據(jù)進(jìn)行同樣的操作,其結(jié)果使次大的數(shù)據(jù)被安置到第N-1位置上.一般地講,第i趟冒泡排序是從a[1]到a[n-i]依次將其與其后相鄰的數(shù)據(jù)進(jìn)行比較,并在“逆序”時交換相鄰元素,結(jié)果使這n-i+1個數(shù)據(jù)中的最大元素被交換到第n-i+1的位置上,如此進(jìn)行m(1≤m≤n-1)趟比較,直到在某一趟比較中沒有任何一隊數(shù)組元素發(fā)生交換為止,在每一趟的比較交換過程中,總是使較大的元素向下沉,而較小的元素向上浮,這就好比水中的“氣泡”沉浮一樣,因此稱為冒泡排序法.

        3 兩頭冒泡法

        改進(jìn)原因:在普通冒泡法中有一種不對稱性無法解決,也就是說,如果最大的元素在首位置而其余的元素都已排好序,那么只進(jìn)行一趟冒泡就可以完成排序.例如,{19,10,11,12,13,14,15,16,17,18}就僅需一趟冒泡.而當(dāng)最小的元素位于末尾位置且其余元素都排好序時,則需要n-1趟冒泡才能完成排序.例如,待排序序列{11,12,13,14,15,16,17,18,19,10}就需要九趟冒泡.造成這種不對稱的原因是,每趟冒泡過程都能使較大的元素下沉最大距離到它應(yīng)到的最終位置,而較小的元素卻只能向上浮一個位置.如果我們改變冒泡過程的掃描方向,每趟從尾部向前掃描,那么情況正好相反.例如,待排序序列{19,10,11,12,13,14,15,16,17,18}就需要掃描九趟,而序列{11,12,13,14,15,16,17,18,19,10}就只需要掃描一趟.為改變上述兩種情況的不對稱性,我們可以改變掃描方向來實現(xiàn).

        改進(jìn)方法:在排序過程中交替改變掃描方向,實行雙向排序,從而減少比較的次數(shù).通過減少關(guān)鍵字的比較次數(shù),提高排序算法的執(zhí)行效率,達(dá)到優(yōu)化目的.也就是說,分別從兩頭交替掃描進(jìn)行冒泡排序,所以可以稱這種改進(jìn)的冒泡排序法為“兩頭冒泡法”.采用這種改進(jìn)的方法進(jìn)行排序時,以上兩個待排序序列最多就只需要掃描兩次就能完成排序了.

        改進(jìn)程序:

        /*兩頭冒泡法程序*/

        #include

        #define N 10

        main()

        {int i,j,t,f,m,a[N+1];

        printf(“Enter data:/n”); /*輸入待排序數(shù)據(jù)*/

        for (i=0;i

        {printf(“a[%d]=”,i);

        scanf(“%d”,&a[i]);

        }

        printf(“ The original numbers: ”); /*輸出排序前原始數(shù)據(jù)*/

        for(i=1;i

        printf(“%5d”,a[i]);

        printf(“ ”);

        m=0; /*m用來統(tǒng)計冒泡的趟數(shù)和計算下一冒泡位置*/

        f=1;

        i=1;

        while (f) /*改進(jìn)處:進(jìn)行兩頭冒泡排序*/

        { f=0;

        m++;

        for (j=i;j

        if(a[j]>a[j+1])

        {t=a[j];

        a[j]=a[j+1];

        a[j+1]=t;

        f=1;

        }

        for (j=N-1;j>=i+1;j--) /*逆向冒泡排序*/

        if (a[j]

        {t=a[j];

        a[j]=a[j-1];

        a[j-1]=t;

        f=1;

        }

        i++;

        }

        printf (“The scaning is made %d times ”,m); /*輸出冒泡的趟數(shù)*/

        printf (“ The sorted numbers: ”);

        for (i=1;i

        printf (“%5d”,a[i]);

        }

        4 結(jié)束語

        冒泡排序法作為一種簡單而又實用的排序方法,受到大家的普遍喜歡和廣泛應(yīng)用,通過算法的改進(jìn),能進(jìn)一步提高排序的效率.學(xué)生在學(xué)習(xí)過程中,對這種改進(jìn)的方法很感興趣,很多學(xué)生通過閱讀大量的程序,對其它的排序算法也進(jìn)行改進(jìn)的嘗試,學(xué)習(xí)主動性增強(qiáng)了.當(dāng)然,冒泡法作為一種常用的排序算法,同樣值得我們進(jìn)一步的研究和學(xué)習(xí),以便在實際應(yīng)用過程中進(jìn)一步改進(jìn)和完善.

        參考文獻(xiàn):

        [1]陳明.數(shù)據(jù)結(jié)構(gòu)實用教程[M].北京:清華大學(xué)出版社,2007.

        [2]徐士良.計算機(jī)常用.[M].北京:清華大學(xué)出版社,1995.

        [3]Anany Levitin. 算法設(shè)計與分析基礎(chǔ)(影印版) [M]. 北京: 清華大學(xué)出版社,2003.

        猜你喜歡
        排序方法
        排排序
        排序不等式
        恐怖排序
        學(xué)習(xí)方法
        節(jié)日排序
        刻舟求劍
        兒童繪本(2018年5期)2018-04-12 16:45:32
        可能是方法不對
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        99国产精品视频无码免费| 亚洲av综合色区无码一区| 影视av久久久噜噜噜噜噜三级| 久久无码av三级| 亚洲精品中文字幕观看| 国产高清不卡二区三区在线观看| 国产自拍视频免费在线| 久久国内精品自在自线图片| 亚洲国产成人久久一区www妖精 | 日本视频一区二区三区免费观看 | 日韩在线精品免费观看 | 国产女人高潮叫床视频| 日韩专区欧美专区| 亚洲一区二区三区av色婷婷| 中文字幕有码在线视频| 精品国产日韩亚洲一区在线| 亚洲成a人v欧美综合天堂| 久久乐国产精品亚洲综合| 国内精品久久久久久久久蜜桃| 美女一区二区三区在线视频| 久久人人爽av亚洲精品| 亚洲国产欧美日韩欧美特级| 四虎影视国产在线观看精品| 国产美女高潮流白浆免费观看| 一区二区三区人妻av| 久久国内精品自在自线图片 | 亚洲av日韩av天堂一区二区三区| 欧美性久久| 久久综合加勒比东京热| 精品国产三级a∨在线欧美| 国产全肉乱妇杂乱视频| 亚洲无码视频一区:| 日本综合视频一区二区| 亚洲av无码一区二区三区乱子伦 | 亚洲av无码av制服另类专区| 中文AV怡红院| 人妻系列中文字幕av| 又色又爽又黄高潮的免费视频| 亚洲成人中文| 亚洲国产日韩欧美高清片a| 大屁股流白浆一区二区三区|