【一】快速排序

上个学期的数据结构已经学过快排,但是这学期的算法设计课上再写又觉得很乱,大致思想知道,但就是不知道该从哪里下手写,发现其实自己之前也只是对他的思想有一个大概的了解,让我说出来还是要想好久,更别说快速写出代码了,查了很多资料,觉得这篇文章不错,于是引用过来,原文链接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;
}

代码了解了,但是关于算法的复杂度还是不太懂,考前再突击一下,以后更新吧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容