快速排序模板
2022-1024
记录一下自己的刷题历程!精进不休,Fighting!
链接: Acwing题目链接
代码模板如下:
#include<vector>
#include<iostream>
using namespace std;
vector<int>v;
void quickSort(vector<int>&v,int l,int r)
{
//如果左边界下标>=右边界下标,说明已经已经完成分而治之,直接返回
if(l>=r) return;
//因为后面do~while语句会提前+和提前-一次,
//x表示pivot值
int i=l-1,j=r+1,x=v[(l+r)>>1];
while(i<j)
{
do i++;while(v[i]<x);
do j--;while(v[j]>x);
if(i<j) swap(v[i],v[j]);
}
quickSort(v,l,j);
quickSort(v,j+1,r);
//以相遇的时候,即i=j的时候j的值作为新的分组边界
}
int main(){
int n;
while(cin>>n){
while(n--){
int num;
cin>>num;
v.push_back(num);
}
quickSort(v,0,v.size()-1);
for(auto i:v){
cout<<i<<' ';
}
cout<<endl;
v.clear();
}
return 0;
}在这里插入代码片
这篇博客记录了作者在刷题过程中对快速排序算法的理解和应用。提供了详细的快速排序模板代码,包括主函数和排序过程。通过输入整数序列,进行排序并输出结果,展示了算法的实际操作。
184

被折叠的 条评论
为什么被折叠?



