冒泡排序及退出双重循环
2012-04-19 14:53
190 查看
(1)冒泡排序
排序在编程中是经常出现的需求,而最最简单、最最容易理解和掌握的排序算法当属冒泡排序算法了,冒泡排序的基本思想是:在整个排序过程中,每一趟不断地将相邻的两个数据元素进行比较,并按照“前小后大”的原则交换,即相邻地两两比较待排序数据元素,并交换不满足顺序的那些偶对,直到全部满足顺序要求为止。其中,值得注意的规律是,每一趟排序结束后都有一个待排序列中的最大值排在了此待排序列的最后一个位置(也就是所谓的“冒泡”了)。
下面是冒泡排序算法的实现(完整实例程序可在我的CSDN资源中下载:http://download.csdn.net/detail/margin1988/4241168):
想要用break;语句退出单循环是很容易的,但是想要用它退出双重循环的话,就需要一点技巧了,可以通过设置标志位的方式实现。
下面结合实例进行说明(完整实例程序可在我的CSDN资源中下载:http://download.csdn.net/detail/margin1988/4241168):
1)退出单循环:
2)退出双重循环:
排序在编程中是经常出现的需求,而最最简单、最最容易理解和掌握的排序算法当属冒泡排序算法了,冒泡排序的基本思想是:在整个排序过程中,每一趟不断地将相邻的两个数据元素进行比较,并按照“前小后大”的原则交换,即相邻地两两比较待排序数据元素,并交换不满足顺序的那些偶对,直到全部满足顺序要求为止。其中,值得注意的规律是,每一趟排序结束后都有一个待排序列中的最大值排在了此待排序列的最后一个位置(也就是所谓的“冒泡”了)。
下面是冒泡排序算法的实现(完整实例程序可在我的CSDN资源中下载:http://download.csdn.net/detail/margin1988/4241168):
const int N=10; int arr = {20,18,10,16,19,8,3,25,9,22}; int temp; for(int i=0;i<N-1;i++) for (int j=0;j<N-i-1;j++) { if (arr[j]>arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } }(2)退出双重循环
想要用break;语句退出单循环是很容易的,但是想要用它退出双重循环的话,就需要一点技巧了,可以通过设置标志位的方式实现。
下面结合实例进行说明(完整实例程序可在我的CSDN资源中下载:http://download.csdn.net/detail/margin1988/4241168):
1)退出单循环:
int i; for (i=0;i<100;i++) { if (i==50) { break; } }※退出循环后,i=50;
2)退出双重循环:
int i,j; int flag=0; for(i=0;i<100;i++) { if (flag==1) { break; } for (j=0;j<100;j++) { if (i==60 && j==60) { flag=1; break; } } }※退出循环后,i=61,j=60;
相关文章推荐
- kotlin双重循环退出
- 冒泡排序, 使用最低票价.---双重循环,一重移动次数.二重移动
- 退出2层循环的n种方法
- 使用单循环实现冒泡排序
- oracle游标中使用select into查询结果为NULL导致异常提前退出循环——菜鸟解决办法(^_^)
- shell 异常退出循环
- break退出循环
- for循环 while循环 break跳出循环 continue结束本次循环 exit退出整个脚本
- 【CentOS 7Shell编程7】,break跳出本次循环和continue结束本次循环以及exit直接退出脚本#180212
- jquery $.each()循环退出
- jQuery中each的用法之退出循环和结束本次循环
- 冒泡排序的4种for循环写法
- Jquery退出循环
- 随机生成一个对称矩阵,并输出。(究极版本,可以每一次都改变矩阵的随机数且不同,采用do while退出条件循环)
- C++如何退出while(cin>>str)循环
- Oracle PLSQL Demo - 06.LOOP循环,以IF判断退出[IF in LOOP]
- 简单字符图形的双重循环(3).cpp
- labview多个并行循环同时退出
- N人围城一圈,依次进行1,2,3报数,报道3的人退出,继续循环报数。
- 作业3-4 循环输入多个年份 year,判断该年是否为闰年。判断闰年的条件是:能被 4 整除但不能被100 整除,或者能被 400 整除。输入-1退出程序执行