之前也写了相应的快速排序的相应的代码,但是只是最基本的快排的算法,本文介绍的两种算法均是优化后的快排算法。
版本一:
#include
using namespace std;
void quick_sort(int a[],int p,int q);
int partition(int a[],int p,int q);
int main()
{
int n;
srand((unsigned)time(NULL));
scanf("%d",&n); int a[n];
for(int i=0;i
a[++i])if(i==q) break;
if(i>=j) break;
t=a[j],a[j]=a[i],a[i]=t;
}
t=a[j],a[j]=a[p],a[p]=t;
return j;
}
#include
using namespace std;
void quick_sort(int a[],int p,int q);
int partition(int a[],int p,int q);
int main()
{
int n;
srand((unsigned)time(NULL));
scanf("%d",&n); int a[n];
for(int i=0;i
a[++i])if(i==q) break;
if(i>=j) break;
t=a[j],a[j]=a[i],a[i]=t;
}
t=a[j],a[j]=a[p],a[p]=t;
return j;
}