• 合并排序(C++实现,通过g++)


    #include<iostream>#include<fstream>#include<cstdlib>using namespace std;template<class Type>void MergeSort(Type a[],int n){    Type *b=new Type[n];    int s=1;    while(s<n)    {        MergePass(a,b,s,n);        s+=s;        MergePass(b,a,s,n);        s+=s;    }}template<class Type>void MergePass(Type x[],Type y[],int s,int n){    int i=0;    while(i<=n-2*s)    {        Merge(x,y,i,i+s-1,i+2*s-1);        i=i+2*s;    }    if(i+s<n)        Merge(x,y,i,i+s-1,n-1);    else        for(int j=i;j<=n-1;j++)            y[j]=x[j];}template<class Type>void Merge(Type c[],Type d[],int l,int m,int r){    int i=l,j=m+1,k=l;    while((i<=m)&&(j<=r))    {        if(c[i]<=c[j])            d[k++]=c[i++];        else            d[k++]=c[j++];    }    if(i>m)    {        for(int q=j;q<=r;q++)            d[k++]=c[q];    }    else    {        for(int q=i;q<=m;q++)            d[k++]=c[q];    }}int main(){    int ndata[10]={12,124,34,5,4567,56,678,83,5458,46};      MergeSort(ndata, 10);    for (int i = 0; i < 10; ++i)    {         printf("%d ", ndata[i]);    }    printf("\n");    system("pause");    return 0;}

    很好的参考

  • 相关阅读:
    异或(^/XOR)的研究
    FastJson的使用
    KindEditor使用
    Java之Collection一
    Java之String
    Github基本使用
    Ubuntu jekyll git使用小记
    使用html editor 打开freemarker文件
    struts.xml 标签顺序
    multipart/form-data ajax 提交问题(未解决)
  • 原文地址:https://www.cnblogs.com/riverphoenix/p/2009740.html
Copyright © 2020-2023  润新知