快速排序详细过程c/c++实现
不啰嗦,直接上图解析:
第一趟
第二趟
第三趟
第四趟
本人亲手c++代码如下:
#include<iostream>
using namespace std;
void quickSort(int a[],int l,int r){
if(l>r)return;
int i=l;
int j=r;
int k=a[l];
while(i<j){
while(i<j&&a[j]>=k){
j--;
}
if(i<j){
int t=a[i];
a[i]=a[j];
a[j]=t;
}
while(i<j&&a[i]<k){
i++;
}
if(i<j){
int t=a[i];
a[i]=a[j];
a[j]=t;
}
}
quickSort(a,l,i-1);
quickSort(a,i+1,r);
}
void disP(int a[],int n){
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
int main(){
int a[7]={20,5,79,6,98,7,30};
disP(a,7);
quickSort(a,0,6);
disP(a,7);
}
初学代码,仅供大家学习参考,有疑问的地方请大家及时指出,我们共同进步。