iOS演算法(四)之冒泡排序

來源:互聯網
上載者:User

標籤:最大的   倒數   元素   冒泡排序   

冒泡排序法的基本思想:(以升序為例)含有n個元素的數組原則上要進行n-1次排序。對於每一躺的排序,從第一個數開始,依次比較前一個數與後一個數的大小。如果前一個數比後一個數大,則進行交換。這樣一輪過後,最大的數將會出現稱為最末位的數組元素。第二輪則去掉最後一個數,對前n-1個數再按照上面的步驟找出最大數,該數將稱為倒數第二的數組元素......n-1輪過後,就完成了排序。/*冒泡排序  分析詳解:     未經處理資料: 28, 30, 19, 2, 23     第一趟:           第一次:28, 30, 19, 2, 23           第二次:28, 19, 30, 2, 23           第三次:28, 19, 2, 30, 23           第四次:28, 19, 2, 23, 30     第二趟:           第一次:19, 28, 2, 23, 30           第二次:19, 2, 28, 23, 30           第三次:19, 2, 23, 28, 30     第三趟:           第一次:2, 19, 23, 28, 30           第二次:2, 19, 23, 28, 30     第四趟:           第一次:2, 19, 23, 28, 30     */    //n個元素比較n-1趟    //每趟比較次數 = 數組元素個數 - 趟數代碼實現:    //隨機產生一組20個元素的數組取值範圍為[20, 40]    int a[20] = {0};    printf("隨機產生的一個包含20個元素的數組:\n");    for (int i = 0; i < 20; i++) {        a[i] = arc4random()%(40 - 20 + 1) + 20; //arc4random產生隨機數        printf("%d  ", a[i]);    }    for (int i = 0; i < 20 - 1; i++) {                  //比較的趟數        for (int j = 0; j < 20 - 1 - i; j++) {             //每趟比較的次數            if (a[j] > a[j + 1]) {                int temp = a[j];                a[j] = a[j + 1];                a[j + 1] = temp;            }        }    }    printf("\n進行冒泡排序,產生一組從小到大順序的數組:\n");    for (int i = 0; i < 20; i++) {        printf("%d  ", a[i]);    }


本文出自 “你不知道” 部落格,請務必保留此出處http://9217856.blog.51cto.com/9207856/1563522

iOS演算法(四)之冒泡排序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.