C程式氣泡排序法(bubble sort bubble so

寫一個 函數 用"氣泡排序法(bubble sort bubble sort )"對輸入 的 10 筆資料 ,按由小到大 順序 排序。

氣泡排序法簡介

將相鄰的資料兩 相互比較,再決定是否進行交換。每一回合 (PASS) (PASS) (PASS)都可以 找到一個最大(或小)值。 其操作方式如下:

【步驟 1】將相鄰的輸入資料 A[i],A [i+1]兩相互比較。 兩相互比較。

【步驟 2】若由小到大排序,則 最的元素便一直互換底;否繼續做下兩 筆資料之比較。

【步驟 3】重覆【步驟 1】【步驟 】【步驟 2】動作,直到 N-1 次或互換 動作停止。

Update:

可以幫我說明一下每一行的動作嗎?

1 Answer

Rating
  • 毛毛
    Lv 6
    8 years ago
    Favorite Answer

    #include <cstdlib>

    #include <iostream>

    int bubble_sort(int num);

    int n[11];

    int main(int argc, char *argv[])

    {

    int i;

    for(i=1;i<=10;i++)

    {

    printf("請輸入第%d個數字: ",i);

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

    }

    bubble_sort(1);

    for(i=1;i<=10;i++)

    {

    printf("%d,",n[i]);

    }

    system("PAUSE");

    return EXIT_SUCCESS;

    }

    int bubble_sort(int num)

    {

    int i,t;

    if(num<=10)

    {

    for(i=num;i<10;i++)

    {

    if(n[num] > n[i+1])

    {

    t=n[i+1];

    n[i+1]=n[num];

    n[num]=t;

    }

    }

    bubble_sort(num+1);

    }

    else

    {

    return 0;

    }

    }

    2012-11-13 01:44:01 補充:

    int i;

    for(i=1;i<=10;i++)

    {

    printf("請輸入第%d個數字: ",i);

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

    }

    第一個迴圈 因為是10筆資料 所以跑十次 (要求輸入10筆資料)

    2012-11-13 01:44:14 補充:

    for(i=1;i<=10;i++)

    {

    printf("%d,",n[i]);

    }

    第二個迴圈 當然就是顯示在螢幕上

    2012-11-13 01:46:43 補充:

    傳入的num=1 就是代表從第一個數開始排序

    小於10代表還沒排序完

    假如>10 就代表排序完 回傳

    |

    if 裡面就是比較(排序)

Still have questions? Get your answers by asking now.