91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用C語言實現冒泡排序

發布時間:2021-07-10 16:12:25 來源:億速云 閱讀:174 作者:chen 欄目:大數據

本篇內容介紹了“怎么用C語言實現冒泡排序”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!



原理:

以 6 個數為例: 對 4    56    25   13   8   6 進行冒泡排序(1 與 2、 2 與3  、 3 與4 、4 與 5  、 5 與 6 比較, 即依次比較)


第一輪:

No.1:56   4     25   13    8    6 

No.2:56   25    4    13    8    6

No.3:56   25   13    4     8    6

No.4:56   25    13    8    4    6

No.5:56   25    13    8    6    4 (最小)

通過第一輪可以看出通過 5 次比較可以找出來一個最小的數。


第二輪:

No.1:56   25   13   8   6

No.2:56   25   13   8   6

No.3:56   25   13   8   6

No.4:56   25   13   8   6 (最小)

由此可見,第二輪經過4次比較確定最小的一個數。


..................................

以下就不一 一比較,可以推理的是,每一輪確定一個最小值,那么6個數,需要5輪比較方能確定順序。若n個數,則需要比較n - 1 輪才能確定數的順序。

還可以推出,第一輪需要比較 5 次, 第二輪需要比較 4次,那么若有n個數,則第一輪需要比較n - 1次, 第二輪 比較 n - 2次。


重點:若用 i 表示第 i 輪, j 表示每輪比較 j 次,那么循環應該這么設計;

for ( i = 0 ; i < n - 1 ; i ++ )

{

       for(j  = 0 ; j < n - 1 - i ; j ++)

        {

                  ...............;

                  ...............;

                  ...............;

        }

}



下面用一個簡單的實際例子說明:

用c編寫一個程序,從鍵盤讀取10 個數字,對其用冒泡排序法進行排序;


程序:

/*

2017年10月27日17:31:59

功能:輸入10個數,通過冒泡法對其進行排序。

*/

#include<stdio.h>

#include<stdlib.h>

#define NUM 10

int main()

{

    int num = NUM;

    int array[NUM];

    int i, j;

    int temp;

    printf("Please enter %d integer numbers:", num);

    for(i = 0; i < NUM; i ++)

    {

        scanf("%d", &array[i]);

    }

    //sort

    for(i = 0; i < NUM - 1; i ++)

    {

        for(j = 0; j < NUM - 1 - i; j ++)

        {

            if(array[j] < array[j + 1])

            {

                temp = array[j];

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

                array[j + 1] = temp;

            }

        }

    }

    printf("The numbers after being sorted:\n");

    for(i = 0; i < NUM; i ++)

    {

        printf("%d\t", array[i]);

        if( (i + 1) % 5 == 0 )                //每行5個數字

        {

            printf("\n");

        }

    }

    return 0;

}

/*

在Code::Blocks中的輸出結果為:

Please enter 10 integer numbers:12 25 65 32 24 59 85 64 49 5

The numbers after being sorted:

85      65      64      59      49

32      25      24      12      5

2017年10月27日17:49:05

心得:冒泡排序的發明者一定智商很高,第一次提出對智力很是挑戰。總之,要想明白冒泡排序的算法,必須明白其原理才行。

*/


上面的例子是用一個數組來存放10個數字。用最簡單的編程方法去實現了冒泡排序,并沒有用指針,以及動態地開辟內存空間去編寫這個程序。一是覺得生

澀難懂;二是不一定能編地出來。



“怎么用C語言實現冒泡排序”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

开远市| 湘阴县| 广西| 金乡县| 象州县| 昌平区| 闽侯县| 绥芬河市| 嵊泗县| 青川县| 长岛县| 鄂伦春自治旗| 永寿县| 临清市| 海原县| 宝鸡市| 禹城市| 达日县| 杭锦旗| 邓州市| 视频| 光泽县| 双峰县| 交口县| 邵阳县| 太原市| 巴彦淖尔市| 大荔县| 儋州市| 隆德县| 永济市| 台中市| 华坪县| 石门县| 成武县| 滁州市| 克什克腾旗| 东乌珠穆沁旗| 吉木萨尔县| 宜宾县| 长春市|