zoukankan      html  css  js  c++  java
  • 快排和归并

    #include<stdio.h>
    #include<time.h>
    #include<windows.h>
    int num[100000005];
    void ss(int *p,int left,int right)
    {
    int i=left,j=right,k=p[i];
    if(left>=right) return;
    while(i<j)
    {
    while(i<j&&p[j]>k) --j;
    if(i<j) p[i++]=p[j];
    while(i<j&&p[i]<k) ++i;
    if(i<j) p[j--]=p[i];
    }
    p[i]=k;
    ss(p,left,i-1);
    ss(p,i+1,right);
    }
    int main()
    {
    freopen("in","r",stdin);
    int n,i;
    scanf("%d",&n);
    for(i=0;i!=n;++i) scanf("%d",&num[i]);
    clock_t lll=clock();
    ss(num,0,n-1);
    printf("%d",clock()-lll);
    return 0;
    }

    #include<stdio.h>
    #include<time.h>
    int source[100000005],temp[100000005];
    void mymerge(int *s,int *t,int start,int mid,int end);
    void mymergrsort(int *s,int *t,int start,int end);
    void mymerge(int *s,int *t,int start,int mid,int end)
    {
    int i=start,j=mid+1,k=start;
    while(i!=mid&&j!=end)
    {
    if(s[i]<s[j]) t[k++]=s[i++];
    else t[k++]=s[j++];
    }
    while(i!=mid+1) t[k++]=s[i++];
    while(j!=end+1) t[k++]=s[j++];
    for(i=start;i<=end;++i) s[i]=t[i];
    }
    void mymergesort(int *s,int *t,int start,int end)
    {
    int mid=(start+end)/2;
    if(start<end)
    {
    mymergesort(s,t,start,mid);
    mymergesort(s,t,mid+1,end);
    mymerge(s,t,start,mid,end);
    }
    }
    int main()
    {
    freopen("in","r",stdin);
    int n,i;
    scanf("%d",&n);
    for(i=0;i!=n;++i) scanf("%d",&source[i]);
    clock_t lll=clock();
    mymergesort(source,temp,0,n-1);
    printf("%d",clock()-lll);
    return 0;
    }

    在1亿个随机数的测试下,快排16555ms,归并25160

  • 相关阅读:
    验证码缓存问题完美解决方案
    最近项目是跟框架有关的两个问题
    未与信任 SQL Server 连接相关联
    Get请求
    Post请求
    jQuery操作元素
    Dom对象和jQuery包装集
    XMLHttpRequest对象
    jQuery事件与事件对象
    处理数据集
  • 原文地址:https://www.cnblogs.com/callmebg/p/6378241.html
Copyright © 2011-2022 走看看