您的位置:首页 > 其它

排序——快速排序

2016-08-04 10:28 148 查看
时间复杂度为O(NlogN)。
#include<stdio.h>
int a[101];
void quicksort(int *a,int left,int right)
{
int index,temp;
if(left>=right)
return ;

index=a[left];  //index中存的就是基准数
int i=left;
int j=right;
while(i!=j)
{
while(a[j]>=index && i<j)
j--;
a[i]=a[j];
while(a[i]<=index && i<j)
i++;
a[j]=a[i];
}
a[i]=index; //将基准数归位
quicksort(a,left,i-1);
quicksort(a,i+1,right);
}
int main()
{
int i,n;
printf("请输入排序数字的个数:\n");
scanf("%d",&n);
printf("请输入待排序列:\n");
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
quicksort(a,0,n-1);
printf("排序结果为:\n");
for(i=0;i<n;i++){
printf("%d ",a[i]);
}
getchar();getchar();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: