二分法,快速排序

第一次写博客,很简单,二分法的快速排序,复杂度为nlogn,是最基础的二分,代码如下:

ps:顺序很重要,必须先右后左。

#include

int a[1001],n;
void quicksort(int left,int right)
{
int temp,i,j,t;
if(left>right)
return;
temp=a[left];
i=left;
j=right;
while(i!=j)

{

//先右后左

while(a[j]>=temp&&i j--;
while(a[i]<=temp&&i i++;
if(i {
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
a[left]=a[i];
a[i]=temp;
quicksort(i+1,right);
quicksort(left,i-1);
}
int main()
{
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
quicksort(1,n);
for(i=1;i<=n;i++)
printf("%d ",a[i]);
return 0;
 } 

你可能感兴趣的:(二分法,快速排序)