当先锋百科网

首页 1 2 3 4 5 6 7
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]);
//    }