上个学期的数据结构已经学过快排,但是这学期的算法设计课上再写又觉得很乱,大致思想知道,但就是不知道该从哪里下手写,发现其实自己之前也只是对他的思想有一个大概的了解,让我说出来还是要想好久,更别说快速写出代码了,查了很多资料,觉得这篇文章不错,于是引用过来,原文链接http://www.cnblogs.com/surgewong/p/3381438.html
原文截图,我是不是太懒了
#include <stdio.h>
#include <stdlib.h>
void quicksort(int a[],int p,int q)
{
int i=p,j=q,temp=a[p];
int k;
while(i<j)
{
while(a[j]>=temp&&j>i) j--;
if(j>i) {
a[i]=a[j];i++ ;
while(i<j&&a[i]<temp) i++;
if(i<j) {a[j]=a[i];j--; }
}
}
a[i]=temp;
if(p<i-1) quicksort(a,p,i-1);
if(j+1<q) quicksort(a,j+1,q);
}
int main()
{
int a[5];
int n,m;
printf("输入5个数:\n");
for(m=0;m<5;m++) scanf("%d",&a[m]);
printf("排序后顺序为\n");
quicksort(a,0,4);
for(m=0;m<5;m++)
printf("%d\n",a[m]);
return 0;
}
代码了解了,但是关于算法的复杂度还是不太懂,考前再突击一下,以后更新吧