概述
快速排序模板
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;
}在这里插入代码片
最后
以上就是清秀红酒为你收集整理的【大旭刷题笔记】之【快速排序】快速排序模板的全部内容,希望文章能够帮你解决【大旭刷题笔记】之【快速排序】快速排序模板所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复