交换排序
2016-04-25 15:16
295 查看
交换排序一般包括冒泡排序,时间复杂度为O(n*n)。快速排序,最好情况和平均情况时间复杂度是O(n*logn),最坏情况是O(n*n)。快速排序可以看我之前专门有一章是专门们讲快速排序的。
C++实现如下:
#ifndef exchangeSort_h #define exchangeSort_h #include<iostream> using namespace std; class exchangeSort{ public: //冒泡排序O(n*n) void bubbleSort(int a[],int n); //快速排序最坏情况是O(n*n),最好和平均情况是O(nlog(n)) void quitSort(int a[],int left,int right); }; //冒泡排序 void exchangeSort::bubbleSort(int a[],int n){ for(int i=0;i<n-1;i++){ bool flag=true; for(int j=0;j<n-i-1;j++){ if(a[j]>a[j+1]){ int tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; flag=false; } } if(flag){ return; } } } //快速排序 void exchangeSort::quitSort(int a[],int left,int right){ if(left>=right){ return; } int i=left,j=right; int tmp=a[left]; while(i!=j){ while(a[j]>=tmp&&j>i){ j--; } while(a[i]<=tmp&&j>i){ i++; } if(i<j){ int temp=a[i]; a[i]=a[j]; a[j]=temp; } } a[left]=a[i]; a[i]=tmp; quitSort(a,left,i-1); quitSort(a,i+1,right); } #endif
相关文章推荐
- nginx反向代理jenkins
- Python学习(一)Windows平台环境搭建
- SCU 4440 Rectangle
- 结构体中运算符的重载
- 探索推荐引擎内部的秘密,第 2 部分: 深入推荐引擎相关算法 - 协同过滤
- Bubble_sort
- Jenkins Android 自动打包配置
- HDU 2859 Phalanx(二维DP)
- 上传AppStore遇到的坑
- c++ primer 学习笔记22类的构造函数
- linux条件变量
- WebLogic Server 12.2.1 多租户安装配置
- redmine邮箱配置
- Android中的内存管理机制以及正确的使用方式
- PHP同时连接多个mysql数据库示例代码
- QT学习------关于QProgressBar控件的使用!
- 位运算判断奇偶
- struct的成员对齐
- 推荐系统经典论文文献及业界应用
- CSKY CVM jni环境搭建