快速排序之c++实现
来源:互联网 发布:解密游戏原版 for mac 编辑:程序博客网 时间:2024/05/07 19:40
此算法的时间复杂度为最坏情况下O(n2),期望时间复杂度为O(nlgn)。
#include<iostream>
#include<vector>using namespace std;
void swap(int &i,int &k)
{
int temp=i;
i=k;
k=temp;
}
int Partition(vector<int> &vec,int q,int r)
{
int x=vec[r];
int i=q-1;
for(int j=q;j<r;j++)
{
if(vec[j]<=x)
{
i++;
swap(vec[j],vec[i]);
}
}
swap(vec[i+1],vec[r]);
return i+1;
}
void QuickSort(vector<int> &vec,int q,int r)
{
if(q<r)
{
int p=Partition(vec,q,r);
QuickSort(vec,q,p-1);
QuickSort(vec,p+1,r);
}
}
int main()
{
vector<int> vec;
int num;
while(cin>>num)
{
vec.push_back(num);
}
int size=vec.size();
QuickSort(vec,0,size-1);
for(auto iter=vec.begin();iter<vec.end();iter++)
{
cout<<*iter<<" ";
}
cout<<endl;
}
0 0
- 快速排序c实现
- 快速排序C实现
- 快速排序C实现
- 快速排序C实现
- 快速排序(C实现
- 常用排序算法之快速排序c及lua实现
- 排序之五:快速排序(C语言实现)
- 算法代码实现之快速排序,C/C++实现
- 快速排序算法之所有版本的c/c++实现
- 数据机构快速排序之c语言实现
- 快速排序算法之所有版本的c/c++实现
- 快速排序之所有的c/c++的实现
- 经典算法之快速排序的C实现方法
- 算法学习之快速排序的C语言实现
- 快速排序 C语言实现
- 快速排序C语言实现
- 快速排序算法(c#)实现
- c语言实现快速排序
- CSS左侧固定宽 右侧自适应(兼容所有浏览器)
- 最小二乘法
- nyoj 会场安排问题 贪心
- 操作系统可变分区用C语言实现按首次适应算法分配内存
- 推荐net开发cad入门阅读代码片段
- 快速排序之c++实现
- 主成分分析-PCA
- 【高性能】配置python版本的MPI
- 查看表空间及数据库相关信息
- 欢迎使用CSDN-markdown编辑器
- spring web flow起步
- Android按钮强制大写问题
- LinearLayout布局中Layout_weight的深刻理解-为何需设置android:layout_width="0dp"
- 计算机网络原理大纲思维导图