手撕快速排序
#include <iostream>
#include <vector>
#include <string>
#include <cmath>
#include <cstdio>
#include <map>
#include <unordered_map>
using namespace std;
int Partition(vector<int>& v,int l,int r)
{
int mark=v[l];
int pos=l;
for(int i=l+1;i<=r;i++)
{
if(v[i]<mark)
{
pos++;
if(pos!=i)
{
swap(v[i],v[pos]);
}
}
}
v[l]=v[pos];
v[pos]=mark;
return pos;
}
void QuickSort(vector<int>& v,int l,int r)
{
if(l<r)
{
int pos=Partition(v,l,r);
QuickSort(v,l,pos-1);
QuickSort(v,pos+1,r);
}
}
int main()
{
vector<int> q{27,99,0,8,13,64,86,16,7,10,88,25,90};
QuickSort(q,0,q.size()-1);
for(int i=0;i<q.size();i++)
{
cout<<q[i]<<" ";
}
}