冒泡排序

  /*
    需求:
        使用“冒泡”排序進行數字排序
        從小到大進行排序
        
    思路:
        每一次循環找到最大的那個數,放在最後,循環的次數等於數字的個數減1 
        當前位於下一位進行比較,如果當前數比後一個數大,那麼就交換兩個數的位置
    */
#include<stdio.h>
#define LEN 10    //定義數組長度常量 
int main()
{
    int a[LEN];
    int i, j, t;
    
    //用戶輸入數字 
    printf("Please enter  the %d integer:\n", LEN);
    for(i = 0; i < LEN; i++)
        scanf("%d", &a[i]);
    
    //排序    
    for(i = 1; i < LEN; i++)    //需要循環數字的個數-1 
    {
        for(j = 0; j < LEN-i; j++)    //對每一個數字進行比較 
            if(a[j] > a[j+1])    //如果左邊的數字比右邊的數字大,兩個數字位置交換 
            {
                t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
    }
    
    //輸出 
    for(i = 0; i < LEN; i++)
        printf("%d  ", a[i]);
    
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章