面试必写算法
每回面试都遇到,在此整理一下:
void qksort(vector<int>& A,int left,int right){
if(left>right) return; //递归结束条件
int i = left;
int j = right;
int tmp = A[left]; //基数
while(i!=j){
while(A[j]>=tmp&&i<j) j--;
while(A[i]<=tmp&&i<j) i++;
if(i<j)
swap(A[i],A[j]);
}
swap(A[left],A[i]);
qksort(A,left,i-1);
qksort(A,i+1,right);
}
在此提一下注意点:
注意swap函数的用法,递归结束条件。