冒泡排序
来源:互联网 发布:淘宝返利api接口源码 编辑:程序博客网 时间:2024/05/22 15:57
基本冒泡排序: #include <iostream> #include <string> #include <stdlib.h> using namespace std; void swap(int &a,int &b); int main() { const int num = 5; int str[num]; cout<<"原数组:"; for(int i = 0;i<num;i++) { str[i] = num - i; cout<<str[i]<<" "; } cout<<endl; for(int i = 0;i<num-1;i++) { for(int j = 0;j <num-1-i;j++) { if(str[j]>str[j+1]) swap(str[j],str[j+1]); } cout<<"第"<<i+1<<"次排序后:"; for(int k = 0;k<num;k++) { cout<<str[k]<<" "; } cout<<endl; } cout<<"最终结果为:"; for(int i = 0;i<num;i++) { cout<<str[i]<<" "; } cout<<endl; system("pause"); return 0; } void swap(int &a,int &b) { int tmp; tmp = a; a = b; b = tmp; }第一种改进方法(设定标志位,来避免不必要的排序):
#include <iostream> #include <string> #include <stdlib.h> using namespace std; void swap(int &a,int &b); int main() { const int num = 5; int str[num]; cout<<"原数组:"; for(int i = 0;i<num;i++) { str[i] = i; cout<<str[i]<<" "; } cout<<endl; int needSort = 1; for(int i = 0;i<num-1 && needSort;i++) { needSort = 0; for(int j = 0;j <num-1-i;j++) { if(str[j]>str[j+1]) { swap(str[j],str[j+1]);needSort = 1;} } cout<<"第"<<i+1<<"次排序后:"; for(int k = 0;k<num;k++) { cout<<str[k]<<" "; } cout<<endl; } cout<<"最终结果为:"; for(int i = 0;i<num;i++) { cout<<str[i]<<" "; } cout<<endl; system("pause"); return 0; } void swap(int &a,int &b) { int tmp; tmp = a; a = b; b = tmp; }第二种改进方法(记录需要排序的位置):、
#include <iostream> #include <string> #include <stdlib.h> using namespace std; void swap(int &a,int &b); int main() { const int num = 5; int str[num]; cout<<"请输入:"; for(int i = 0;i<num;i++) { cin>>str[i]; } cout<<endl; int loc = num -1;while(loc > 0){int k = 0;for(int i = 0;i<loc;i++){if (str[i]>str[i+1]){swap(str[i],str[i+1]);k=i;}}loc = k; cout<<"loc 在"<<loc<<"的位置"<<",当前排序为"; for(int k = 0;k<num;k++) { cout<<str[k]<<" "; } cout<<endl; } cout<<"最终结果为:"; for(int i = 0;i<num;i++) { cout<<str[i]<<" "; } cout<<endl; system("pause"); return 0; } void swap(int &a,int &b) { int tmp; tmp = a; a = b; b = tmp; }
0 0
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- oracle--PLSQL
- Muduo之Channel源码解析
- strlen函数的三种写法
- SEAndroid kernel 源码解析2--策略执行
- mina 添加心跳包
- 冒泡排序
- PHP中system()、exec()输出错误信息
- 一般框架min.js 与js 有什么区别,如jquery.min.js与jquery.js有什么区别
- python从oracel中提取ip信息并批量ping后保存
- tcp粘包分析
- HttpClient获取JSON报错406问题解决
- 关于maven一些配置,约定,命令
- eclipse复制到IDEA中文不匹配,编译失败
- redis缓存(单机版)