2015.08.15冒泡排序
15 冒泡排序
2023-09-14 08:59:37 时间
定义数组——随机数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 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 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 i++) //开始for循环,从i=0,每次加1,直到i=4,共需循环5次
// { //循环体开始
// scanf("%d", grade[i]); //依次获取用户输入的整数值并存入数组grade中
// } //循环结束
// for(i=0;i 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 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 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 i ++) {
// printf("a[%d] = -\t b[%d] = -\n",i,a[i],i,b[i]);
// }
// //将两个数组放到一个数组c中
// for (int i = 0; i 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 i ++) {
// printf("a[%d] = -\n",i,c[i]); // }
冒泡排序就这么简单 在我大一的时候自学c语言和数据结构,我当时就接触到了冒泡排序(当时使用的是C语言编写的)。现在大三了,想要在暑假找到一份实习的工作,又要回顾一下数据结构与算法的知识点了。
你知道和你不知道的冒泡排序 这篇文章包含了你一定知道的,和你不一定知道的冒泡排序。 gif看不了可以点击【原文】查看gif。 1. 什么是冒泡排序 可能对于大多数的人来说比如我,接触的第一个算法就是冒泡排序。 我看过的很多的文章都把冒泡排序描述成我们喝的汽水,底部不停的有二氧化碳的气泡往上冒,还有描述成鱼吐泡泡,都特别的形象。
// 总结;********************************************************************************************** 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 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 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 i++) //开始for循环,从i=0,每次加1,直到i=4,共需循环5次
// { //循环体开始
// scanf("%d", grade[i]); //依次获取用户输入的整数值并存入数组grade中
// } //循环结束
// for(i=0;i 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 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 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 i ++) {
// printf("a[%d] = -\t b[%d] = -\n",i,a[i],i,b[i]);
// }
// //将两个数组放到一个数组c中
// for (int i = 0; i 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 i ++) {
// printf("a[%d] = -\n",i,c[i]); // }
冒泡排序就这么简单 在我大一的时候自学c语言和数据结构,我当时就接触到了冒泡排序(当时使用的是C语言编写的)。现在大三了,想要在暑假找到一份实习的工作,又要回顾一下数据结构与算法的知识点了。
你知道和你不知道的冒泡排序 这篇文章包含了你一定知道的,和你不一定知道的冒泡排序。 gif看不了可以点击【原文】查看gif。 1. 什么是冒泡排序 可能对于大多数的人来说比如我,接触的第一个算法就是冒泡排序。 我看过的很多的文章都把冒泡排序描述成我们喝的汽水,底部不停的有二氧化碳的气泡往上冒,还有描述成鱼吐泡泡,都特别的形象。
相关文章
- 操作系统概念学习笔记 15 内存管理(一)
- 视频出炉:4月15日《阿里云RDS MySQL分支深度定制实战分享》
- Flink(15):Flink之Sink数据输出
- 432. 全 O(1) 的数据结构(15/16)
- 《安富莱嵌入式周报》第240期:2021.11.15--2021.11.21
- AI:2020年6月22日北京智源大会演讲分享之认知神经基础专题论坛——15:00-15:40刘嘉教授《From Representation to Comp: the Cognitive N》
- 15个你不得不知道的Chrome dev tools的小技巧
- 习题 6.9 有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。
- 3GPP TS 29244-g30 中英文对照 | 5.4.15 Packet Rate enforcement
- 第15讲:DCL类型的SQL语句之用户权限控制
- 3D游戏从入门到精通-15
- 【JS高级】ES6_class、promise的简谈与应用_15