zoukankan      html  css  js  c++  java
  • 笔记-归并排序

    #include<yzrarray.h>//自定义的数组操作,方便使用
    void mergearray(int a[],int first,int mid,int last,int temp[])
    {   //划分成两个有序数组的合并
        int i=first,j=mid+1,m=mid,n=last,k=0;
        while(i<=m&&j<=n)
         if(a[i]<a[j])
            temp[k++]=a[i++];
         else
            temp[k++]=a[j++];
        while(i<=m)temp[k++]=a[i++];
        while(j<=n)temp[k++]=a[j++];
        for(i=0;i<k;i++)a[first+i]=temp[i];
    }
    void mergesort(int a[],int first,int last,int temp[])
    {  
        if(first<last)
        {  int mid=(first+last)/2;
            mergesort(a,first,mid,temp);//左边有序
            mergesort(a,mid+1,last,temp);//右边有序
            mergearray(a,first,mid,last,temp);//合并
        }
    }
    int main()
    {
        int a[10],c[20];
        ArrRand(a,10);
        Print(a,10);
        mergesort(a,0,10-1,c);
        Print(a,10);
    }
    

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    php上传excle文件,csv文件解析为二维数组
    transition的使用
    数组
    快捷键
    SCSS历史介绍与配置
    18-async函数
    this的指向问题
    媒体查询
    13-Set和Map数据结构
    15-Iterator和for…of循环
  • 原文地址:https://www.cnblogs.com/Thereisnospon/p/4768529.html
Copyright © 2011-2022 走看看