2015 10 26 冒泡排序

C語言冒泡排序法:
{冒泡最終思想是for嵌套循環
定義數組——隨機數a[i] = arc4random_uniform(隨機N);並打印——for外不循環控制趟數=元素個數-1 ——for中(i+j) = 定值(元素總個數)內部控制循環次數j<</b>(元素個數 - 1 - i)——//遍歷數組查並打印
//   總結;**********************************************************************************************
1、開始是元素個數-1趟進行完畢   、
//第一趟
//    for (int i = 0; i < 4 - 1; i ++) {
//        if (arr[i] > arr[i + 1]) {
//            int temp = arr[i];
//            arr[i] = arr[i +1];
//            arr[i + 1] = temp;
//            
//            
//        }
//    }
2、每走完一趟要進行遍歷數組
//遍歷數組
//    for (int i = 0; i < 4; i ++) {
//        printf("%d\t",arr[i]);
//    }
3、循環完內部進行外部循環來控制趟數:趟數 = 元素個數減1,並且新定義的  j + i= 元素總個數是定值;所以
j < 元素個數-1 - i;
//    //外部循環用來控制趟數,比較的趟數等於元素個數-1
//    //    j + i = 4;
//    for (int i = 0; i < 4 - 1; i ++) {
//        for (int j = 0; j < 4 - i - 1; j ++) {
//            if (arr[j] > arr[j + 1]) {
//                int temp = arr[j];
//                arr[j] = arr[j + 1];
//                arr[j +1 ] = temp;
//            }
//        }
//    }
4、最後再遍歷數組查驗:
//    //遍歷數組
//    for (int i = 0; i < 4; i ++) {
//        printf("%d\t",arr[i]);
//    }
************************************************************************************************************************************

//#import 
//
//    int main( ) //主函數入口
//    { //表示主函數開始
//        int i,j; //定義整形變量i和j
//        int grade[5],temp; //定義N維(N=5,也就是五維啦^^)整形數組和整形變量temp
//        printf("輸入5個數\n"); //在屏幕上顯式“輸入5個數”並且換行
//        for(i=0;i<5;i++) //開始for循環,從i=0,每次加1,直到i=4,共需循環5次
//        { //循環體開始
//            scanf("%d",&grade[i]); //依次獲取用戶輸入的整數值並存入數組grade中
//        } //循環結束
//        for(i=0;i<5;i++) //開始外層for循環,從i=0,每次加1,直到i=4
//        { //外層循環體開始
//            for(j=0;j<5-1-i;j++) //開始外層for循環,從j=0,每次加1直到i等於外層循環的N-j-1
//            { //內層循環體開始
//                if(grade[j]
//                { //如果整形數組前面的數比其後的小,執行以下語句
//                    temp=grade[j+1]; //將比較大的數賦值給temp
//                    grade[j+1]=grade[j]; //將比較小的數賦值給數組中後面的變量
//                    grade[j]=temp; //將比較大的數賦值給數組中前面的變量
//                } //從此便完成大小變量的交換,使得大值往前放
//            } //結束內層循環
//        } //結外內層循環,完成排序 
//        printf("最後排序爲:\n");//在屏幕顯式“最後排序爲:”並換行 
//        for(i=0;i<5;i++) //同開始的for循環類似
//        { //開始循環輸出 
//            printf("%d",grade[i]); //只是這裏要逐個輸出數組中的五個數值 
//        } //結束循環輸出 
//        printf("\n"); //輸出換行到屏幕,看不到什麼效果,可刪掉 
//     //結束main()函數
//   ******************************經典例題*************************************
編寫一個程序,輸入兩個包含5個元素的數組,先將兩個數組升序排序,然 後將這兩個數組合併成一個升序數組。
    //先定義兩個數組
//    int a[5] = {0};
//    int b[5] = {0};
//    int c [10] = {0};
//    printf("\n排序前:\n");
//    //打出兩個隨機數組
//    for (int i = 0; i < 5; i ++) {
//        a[i] = arc4random_uniform(100);
//        b[i] = arc4random_uniform(100);
//        printf("a[%d] = -\t,b[%d] = -\n",i,a[i],i,b[i]);
//        
//    }
//    //外部循環控制趟數
//    for (int i = 0; i < 5 - 1; i ++) {
//        //內部控制循環次數
//        for (int j = 0; j < 5 - 1 - i; j ++) {
//            if (a[j] > a[j + 1]) {
//                 int x = a[j];
//                a[j] = a[j + 1];
//                a[j + 1] = x;
//            }
//            if (b[j] > b[j +1]) {
//                int y = b[j];
//                b[j] = b[j +1];
//                b[j + 1] = y;
//            }
//        }
//    }
//    printf("\n排序後:\n");
//    //遍歷數組查看
//    for (int i = 0; i < 5; i ++) {
//        printf("a[%d] = -\t b[%d] = -\n",i,a[i],i,b[i]);
//    }
//    //將兩個數組放到一個數組c中
//    for (int i = 0; i < 10; i ++) {
//        if (i < 5) {
//            c[i] = a[i];
//        } else {
//            c[i] = b[i - 5];
//        }
//    }
////對數組c進行升序排序
//    for (int i = 0; i < 10- 1; i ++) {
//        if (c[i] > c[i +1]) {
//            int temp = c[i];
//            c[i] = c[i + 1];
//            c[i +1] = temp;
//        }
//    }
//    //遍歷循環查驗
//    printf("\n重組排序後:\n");
//    for (int i = 0; i < 10; i ++) {
//        printf("a[%d] = -\n",i,c[i]);
//    }

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