一、排序算法 快排

来源:互联网 发布:数据库表空间 编辑:程序博客网 时间:2024/04/28 09:32

快排时分治思想的典型应用。

极丑的快排

sort和手写都有

#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>using namespace std;struct rec{int num,w;}a[100],b[100];bool cmp(rec a,rec b){return a.w<b.w;}void qsort(int l,int r){int i=l,j=r,m,t;m=b[(i+j)/2].w;while(1){while(b[i].w<m)i++;while(b[j].w>m)j--;if(i<=j){t=b[i].w;b[i].w=b[j].w;b[j].w=t;i++;j--;}if(i>j)break;}if(l<j)qsort(l,j);if(r>i)qsort(i,r);return;}int main(){int n,m;scanf("%d",&n);for(int i=0;i<=n-1;i++){scanf("%d",&m);a[i].num=i;b[i].num=i;a[i].w=m;b[i].w=m;}sort(a,a+n,cmp);qsort(0,n-1);for(int i=0;i<=n-1;i++)printf("%d ",a[i].w);printf("\n");for(int i=0;i<=n-1;i++)printf("%d ",b[i].w);return 0;}


0 0
原创粉丝点击