<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    c 語言冒泡排序法代碼


    發現錯別字 1年前 提問
    回答
    1
    瀏覽
    4925
    請勿發布不友善或者負能量的內容。與人為善,比聰明更重要!
    回答數量: 1
    風險管理(專業級)RM/PL CICSA

    冒泡排序法的基本思路為:每次將相鄰的兩個數比較,將小的調在前面。即如果有n個數,則要進行n-1趟比較,第一次比較中需要進行n-1次兩兩比較,第二趟需要進行n-2次,第j次需要進行n-j次兩兩比較。N個數字要排序完成,總共進行N-1趟排序,每i趟的排序次數為(N-i)次,所以可以用雙重循環語句,外層控制循環多少趟,內層控制每一趟的循環次數。

    c語言冒泡排序代碼如下:

    #include <stdio.h>
    
    #define ARR_LEN 255 /*數組長度上限*/
    #define elemType int /*元素類型*/
    
    /* 冒泡排序 */
    /* 1. 從當前元素起,向后依次比較每一對相鄰元素,若逆序則交換 */
    /* 2. 對所有元素均重復以上步驟,直至最后一個元素 */
    /* elemType arr[]: 排序目標數組; int len: 元素個數 */
    void bubbleSort (elemType arr[], int len) {
        elemType temp;
        int i, j;
        for (i=0; i<len-1; i++) /* 外循環為排序趟數,len個數進行len-1趟 */
            for (j=0; j<len-1-i; j++) { /* 內循環為每趟比較的次數,第i趟比較len-i次 */
                if (arr[j] > arr[j+1]) { /* 相鄰元素比較,若逆序則交換(升序為左大于右,降序反之) */
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
    }
    
    int main (void) {
        elemType arr[ARR_LEN] = {3,5,1,-7,4,9,-6,8,10,4};
        int len = 10;
        int i;
    
        bubbleSort (arr, len);
        for (i=0; i<len; i++)
            printf ("%d\t", arr[i]);
        putchar ('\n');
    
        return 0;
    }

    回答所涉及的環境:聯想天逸510S、Windows 10。

    1年前 / 評論
    亚洲 欧美 自拍 唯美 另类