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]);
//    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值