2015.08.15冒泡排序

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

//    }

时间: 2024-10-31 19:24:26

2015.08.15冒泡排序的相关文章

新MacBook 2015的15个Force Click特性解析

  2015 MacBook 和 13 英寸 Retina MacBook Pro 均配备了新的 Force Touch 触控板,给 OS X 中的某些应用增加新的特性.在 Force Touch 触控板的设计中,无论你点按触控板表面的哪个位置,都能得到灵敏且效果一致的点击响应.此外在触控板下方,还有力度感应器可检测你的点按力度,从而开启你与笔记本电脑互动的全新方式. 现在在 MacBook 上,用户进行 Force Click 即可在某个项目上执行各种不同的动作.外媒已经在新的 13 英寸 r

2015 年 15 个超棒的免费 Joomla 模板

Joomla 是个内容管理系统,与 Drupal 有点类似,并且每天都在进步.Drupal 适合社区网站和博客,Joomla 则倾向于电子商务(阅读更多有关两者的区别). 本文向你推荐 15 个免费的 Joomla 模板,值得试试. Webexperts Ulmus The Kraken nuModusVersus Derfotograf Radon Section jf Taman ST Resting Meet Kotoba2 JSN Force Albos JSN One JM Inter

2015.08.14数据类型

sizeof(数据类型/变量名)计算数据类型在内存中所占的字节数的运算符:     //计算int类型那个的字节数//   unsigned long size = sizeof(int);//sizeof 的返回值是无符号长整型//    printf("size = %lu\n",size);//无符号长整型的占位符是%lu://    //    int num = 10;//    size = sizeof(num);//使用变量名计算数据的长度//    printf(&q

阿里云accessKey如何创建?~ 2015.08.25

选择导航条上面的ACCESSKeys(工单服务左边,我一开始也没注意到) 创建一下,然后同意   验证一下 收工

2015.08.26枚举

 1.枚举:就是将人能是别的字符跟计算机能是别的数据结合起来,就叫枚举:枚举:罗列所有可能的字符,能使用枚举说明这些可能的字符是有限的,而不是无限的.   //枚举不能为空 2. 枚举值所对应的整数数值,如果不给枚举值赋值,以系统为准,默认枚举值是从0开始,如果这是给枚举赋值,它之前的枚举值按系统默认赋值,它之后的枚举值是从我们赋值的位置开始逐个递增: ---------------------------- 以下举例说明用途: 1.枚举enum的用途浅例       写程序时,我们常常需要为某

2015.08.25函数指针

1.函数指针: 指向函数的指针就叫函数指针,由于函数名以存储名就是函数的首地址,即函数指针时指向函数名的指针2.格式: 指针类型修饰符  * 指针变量名  = 初始值:3.函数指针确定的步骤://第一步:将函数名去掉,用小括号星(*)替代//    void (*)();   int (*)(int a,int b);//第二步:若有参数,将参数名去掉,只保留参数类型: //  void (*)();   int (*)(int ,int );4.   //定义函数指针变量需要注意的内容:1:确

2015.08.17多维数组和字符串的访问

1.多维数组:每多一个维度,就会出现一个更大的容器去装裹之前的维度 注意:有几维就由几个for进行嵌套循环,通常使用一维和二维较多 定义二维数组的步骤: 类型修饰符 数组名[常量表达式1][常量表达式2] = {初始值}; 2. 不管是几维数组,数组都是不能直接拿来运算,访问二维数组元素使用双下标 定义二位数组的时候可以不指定第一维的长度,但是必须要给定第二维得长度 行数 = 元素个数 除以 第二维长度  若没有余数,结果就是行数:若有余数,(结果+1)等于行数 3.元素个数 =各维数乘积: 4

2015.08.24内存分区

  1.//内存区域的划分(从低到高)     //1.栈区     //2.堆区++++++++++++++重点+++++++++++     //3.静态区(全局区)     //4.常量区     //5.代码区 2.static int number = 10;//被static 修饰的全局变量生命周期随着程序的创建而创建,随着程序的消失而消失: 3.//局部变量:定义在函数内部的变量就叫做局部变量,局部变量都是存储在栈区 3.//内存管理的时候系统也是遵循内存对齐原则,因为这样可以提高

2015.08.18&amp;nbsp;函数

1.函数     函数定义的格式:确定返回值的数据类型 + 函数名(形参列表)+{          //形参列表:一个函数可能需要多个参数,每个参数用逗号隔开                 函数体:                   return;//有返回值的时候需要用return将数据返回:             } 2. 函数分为两种:第一种是库函数(系统提供的函数):第二种:由于系统提供的库函数是有限的,不能满足开发者的需要,开发者需要自己定义一些函数,这种有开发者自己定义的函数