非循环的冒泡排序
2016-04-18 19:02
232 查看
在不适用循环的条件下,写出冒泡排序。
循环与递归之间可以相互转换,不让使用循环那只能通过递归来代替循环过程了。
搞清楚递归过程中需要改变的变量和递归的结束条件就ok了。
代码比较简单,如下所示:
循环与递归之间可以相互转换,不让使用循环那只能通过递归来代替循环过程了。
搞清楚递归过程中需要改变的变量和递归的结束条件就ok了。
代码比较简单,如下所示:
#include<iostream> #include<algorithm> using namespace std; void BubbleSortNoLoop(int a[],int start,int n) { //start:每次比较的第一个数字 //n: 待排序的元素个数 if(start==n-1){ --n; start=0; } if(n==1) return; if(a[start]>a[start+1]) swap(a[start],a[start+1]); BubbleSortNoLoop(a,start+1,n); } int main(){ //int a[5]={5,2,3,8,1},n=5; int a[11]={10,8,6,20,4,3,22,1,0,15,16},n=11; BubbleSortNoLoop(a,0,n); for(int i=0;i<n;++i) cout << a[i]<<" "; cout << endl; return 0; }
相关文章推荐
- 机器学习之——多变量线性回归
- leetcode笔记:Power of Four
- C++计算代码片运行时间
- 浙江大学MooC数据结构OJ——复杂度
- jQuery 学习总结(上)
- PhoneGap开发跨平台移动APP - 解决跨域资源共享
- 工作邮件loop的用法
- 【接口测试】接口自动化测试
- Mybatis最入门---基本增改删查(CRUD)
- android常用快捷方式
- Cocostudio使用简介
- ubuntu下thinkphp集成极光推送,推送消息时失败,无法加载模块:50x
- Java反射的基础使用
- C++冒泡排序
- Navicat for oracle 提示 cannot load OCI DLL,126 193的解决方法
- mac下配置android开发环境
- Flaskweb实战开发的总结(前6章)
- 关于Android调用invalidate()之后不能及时调用ondraw()的解决办法
- 141. Linked List Cycle
- 博弈论 题