98国产精品综合一区二区三区,国产福利视频,男人添女人囗交做爰视频,日本免费一区二区三区视频观看

您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!

您現(xiàn)在的位置:首頁 新聞資訊 >> 新聞頭條 >> 冒泡排序法
新聞資訊
NEWS INFORMATION

冒泡排序法

發(fā)布時(shí)間:2019-05-22

在實(shí)際開發(fā)中,有很多場景需要我們將數(shù)組元素按照從大到。ɑ蛘邚男〉酱螅┑捻樞蚺帕,這樣在查閱數(shù)據(jù)時(shí)會更加直觀,例如:

  • 一個(gè)保存了班級學(xué)號的數(shù)組,排序后更容易分區(qū)好學(xué)生和壞學(xué)生;
  • 一個(gè)保存了商品單價(jià)的數(shù)組,排序后更容易看出它們的性價(jià)比。


對數(shù)組元素進(jìn)行排序的方法有很多種,比如冒泡排序、歸并排序、選擇排序、插入排序、快速排序等,其中最經(jīng)典最需要掌握的是「冒泡排序」。

以從小到大排序?yàn)槔,冒泡排序的整體思想是這樣的:

  • 從數(shù)組頭部開始,不斷比較相鄰的兩個(gè)元素的大小,讓較大的元素逐漸往后移動(交換兩個(gè)元素的值),直到數(shù)組的末尾。經(jīng)過第一輪的比較,就可以找到最大的元素,并將它移動到最后一個(gè)位置。
  • 第一輪結(jié)束后,繼續(xù)第二輪。仍然從數(shù)組頭部開始比較,讓較大的元素逐漸往后移動,直到數(shù)組的倒數(shù)第二個(gè)元素為止。經(jīng)過第二輪的比較,就可以找到次大的元素,并將它放到倒數(shù)第二個(gè)位置。
  • 以此類推,進(jìn)行 n-1(n 為數(shù)組長度)輪“冒泡”后,就可以將所有的元素都排列好。


整個(gè)排序過程就好像氣泡不斷從水里冒出來,最大的先出來,次大的第二出來,最小的最后出來,所以將這種排序方式稱為冒泡排序(Bubble Sort)。

下面我們以“3  2  4  1”為例對冒泡排序進(jìn)行說明。

第一輪  排序過程
3  2  4  1    (最初)
2  3  4  2    (比較3和2,交換)
2  3  4  1    (比較3和4,不交換)
2  3  1  4    (比較4和1,交換)
第一輪結(jié)束,最大的數(shù)字 4 已經(jīng)在最后面,因此第二輪排序只需要對前面三個(gè)數(shù)進(jìn)行比較。

第二輪  排序過程
2  3  1  4 (第一輪排序結(jié)果)
2  3  1  4 (比較2和3,不交換)
2  1  3  4 (比較3和1,交換)
第二輪結(jié)束,次大的數(shù)字 3 已經(jīng)排在倒數(shù)第二個(gè)位置,所以第三輪只需要比較前兩個(gè)元素。

第三輪  排序過程
2  1  3  4  (第二輪排序結(jié)果)
1  2  3  4  (比較2和1,交換)

至此,排序結(jié)束。

算法總結(jié)及實(shí)現(xiàn)

對擁有 n 個(gè)元素的數(shù)組 R 進(jìn)行 n-1 輪比較。

第一輪,逐個(gè)比較 (R[1], R[2]),  (R[2], R[3]),  (R[3], R[4]),  …….  (R[N-1], R[N]),最大的元素被移動到 R 上。

第二輪,逐個(gè)比較 (R[1], R[2]),  (R[2], R[3]),  (R[3], R[4]),  …….  (R[N-2], R[N-1]),次大的元素被移動到 R[n-1] 上。
。。。。。。
以此類推,直到整個(gè)數(shù)組從小到大排序。

具體的代碼實(shí)現(xiàn)如下所示:

#include <stdio.h>
int main(){
    int nums[10] = {4, 5, 2, 10, 7, 1, 8, 3, 6, 9};
    int i, j, temp;
    //冒泡排序算法:進(jìn)行 n-1 輪比較
    for(i=0; i<10-1; i++){
        //每一輪比較前 n-1-i 個(gè),也就是說,已經(jīng)排序好的最后 i 個(gè)不用比較
        for(j=0; j<10-1-i; j++){
            if(nums[j] > nums[j+1]){
                temp = nums[j];
                nums[j] = nums[j+1];
                nums[j+1] = temp;
            }
        }
    }
   
    //輸出排序后的數(shù)組
    for(i=0; i<10; i++){
        printf("%d ", nums[i]);
    }
    printf("\n");
   
    return 0;
}

運(yùn)行結(jié)果:
1 2 3 4 5 6 7 8 9 10

優(yōu)化算法

上面的算法是大部分教材中提供的算法,其中有一點(diǎn)是可以優(yōu)化的:當(dāng)比較到第 i 輪的時(shí)候,如果剩下的元素已經(jīng)排序好了,那么就不用再繼續(xù)比較了,跳出循環(huán)即可,這樣就減少了比較的次數(shù),提高了執(zhí)行效率。

未經(jīng)優(yōu)化的算法一定會進(jìn)行 n-1 輪比較,經(jīng)過優(yōu)化的算法最多進(jìn)行 n-1 輪比較,高下立判。

優(yōu)化后的算法實(shí)現(xiàn)如下所示:

#include <stdio.h>
int main(){
    int nums[10] = {4, 5, 2, 10, 7, 1, 8, 3, 6, 9};
    int i, j, temp, isSorted;
   
    //優(yōu)化算法:最多進(jìn)行 n-1 輪比較
    for(i=0; i<10-1; i++){
        isSorted = 1;  //假設(shè)剩下的元素已經(jīng)排序好了
        for(j=0; j<10-1-i; j++){
            if(nums[j] > nums[j+1]){
                temp = nums[j];
                nums[j] = nums[j+1];
                nums[j+1] = temp;
                isSorted = 0;  //一旦需要交換數(shù)組元素,就說明剩下的元素沒有排序好
            }
        }
        if(isSorted) break; //如果沒有發(fā)生交換,說明剩下的元素已經(jīng)排序好了
    }
    for(i=0; i<10; i++){
        printf("%d ", nums[i]);
    }
    printf("\n");
   
    return 0;
}

我們額外設(shè)置了一個(gè)變量 isSorted,用它作為標(biāo)志,值為“真”表示剩下的元素已經(jīng)排序好了,值為“假”表示剩下的元素還未排序好。

每一輪比較之前,我們預(yù)先假設(shè)剩下的元素已經(jīng)排序好了,并將 isSorted 設(shè)置為“真”,一旦在比較過程中需要交換元素,就說明假設(shè)是錯的,剩下的元素沒有排序好,于是將 isSorted 的值更改為“假”。

每一輪循環(huán)結(jié)束后,通過檢測 isSorted 的值就知道剩下的元素是否排序好。

聯(lián)系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

老校长不戴套玩新婚老师| 双性喂奶给室友八人攻| 乱码丰满人妻一二三区麻豆| 学生娇小嫩白紧小疼叫| 久久久久99精品国产片| 蜜桃视频app下载直播| 我帮妺妺洗澡忍不住c了她| 男人亚洲成色av网站| 色戒电影未删减完整版免费观看| 69堂国产成人精品视频| 国产特黄级aaaaa片免| 日日摸天天爽天天爽视频| 最近国语视频在线观看免费播放| 日韩精品极品视频在线观看免费| 国产日韩未满十八禁止在线观看| 中文字幕无码日韩专区免费| 亚洲中文字幕久久精品无码喷水| 中文字幕乱码中文| 在线观看国产精品| 高洁在公车被灌满jing液| 性色做爰片在线观看ww| 亚洲精品巨爆乳无码大乳巨| 免费av一区二区三区| 男男开小嫩苞好深啊h窑子开| 校花张开腿疯狂娇吟k视频| 日本人与黑人做爰视频网站| 女人被狂躁c到高潮喷水的原因| 奇米777 米奇影视狠狠| 永久免费看a片无码网站宅男| 国产麻豆精东果冻乌鸦传媒| 少妇被三个黑人4p到惨叫| 门卫老李干了校花高小柔| 亚洲 欧美 国产 日韩 字幕| 变态抽搐顶弄h| 热の综合热の国产中文网| 强行无套内谢大学生初次| 亚洲日韩乱码人人爽人人澡人| 人体张悠雨全身光一丝不| 欧美freese黑又粗又大| 国产成人亚洲精品| 放课后の优等生未增删有翻译|