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

    将数组分成二组A,B,如果这二组组内的数据都是有序的,那么就可以很方便的将这二组数据进行排序。

    之后,将A,B组各自再分成二组。

    依次类推,当分出来的小组只有一个数据时,可以认为这个小组组内已经达到了有序,然后再合并相邻的二个小组就可以了。这样通过先递归的分解数列,再合并数列就完成了归并排序。

    #include<stdio.h>
    #include<stdlib.h>
    void GuiBing(int a[],int first,int mid,int last,int c[])
    {
        int i=first;
        int j=mid+1;
        int m=mid;
        int n=last;
        int k=0;
    
        while((i<=m)&&(j<=n))
        {
            if(a[i]<=a[j])
                c[k++]=a[i++];
            else
                c[k++]=a[j++];
        }
    
        while(i<=m)
            c[k++]=a[i++];
        while(j<=n)
            c[k++]=a[j++];
    
        for(int l=0;l<k;l++)
            a[first+l]=c[l];
    }
    
    void Divide(int a[],int first,int last,int c[])
    {
        if(first<last)
        {
            int mid=(first+last)/2;
            Divide(a,first,mid,c);
            Divide(a,mid+1,last,c);
            GuiBing(a,first,mid,last,c);
        }
    }
    
    int main()
    {
        int paixu[]={10,54,2,59,6,325,489,0,266,12,32,88};
        int temp[12];
        Divide(paixu,0,11,temp);
        for(int i=0;i<12;i++)
            printf("%d,",temp[i]);
        return 0;
    }

    参考:

    https://blog.csdn.net/morewindows/article/details/6678165

  • 相关阅读:
    User-Introduction——介绍
    UserHow to Config
    DevHacking
    【转载】常备JS操作
    【转载】本地搜索服务全面评测
    User-Data config
    小知识:常用到的软件或服务及其使用的端口
    网页配色方案
    User-Validation User Guide
    Dev-Introduction
  • 原文地址:https://www.cnblogs.com/zzdbullet/p/9949757.html
Copyright © 2011-2022 走看看