最新文章:

首页 数据结构

归并排序

发布时间:2016年12月08日 评论数:抢沙发 阅读数:267

    归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并

    #include<stdio.h>
    typedef int Elemtype;
    int Merge(Elemtype a[],Elemtype b[],int startindex,int midindex,int endindex){//子序列的排序
        int i=startindex,j=midindex+1,k=startindex;
        while(i<=midindex&&j<=endindex){
            if(a[i]>a[j]){
                b[k++]=a[i++];
            }else{
                b[k++]=a[j++];
            }
        }
        while(i<=midindex){
            b[k++]=a[i++];
        }
        while(j<=endindex){
            b[k++]=a[j++];
        }
        for(i=startindex;i<=endindex;i++){
            a[i]=b[i];
        }
    }
    int MergeSort(Elemtype a[],Elemtype b[],int startindex,int endindex){//待排序序列分组
        int midindex;
        if(startindex<endindex){
            midindex=(startindex+endindex)/2;
            MergeSort(a,b,startindex,midindex);
            MergeSort(a,b,midindex+1,endindex);
            Merge(a,b,startindex,midindex,endindex);
        }
    }
    int main(){
        Elemtype a[11];
        Elemtype b[11];
        int len =10;
        for(int i=0;i<len;i++){
            scanf("%d",&a[i]);
        }
        MergeSort(a,b,0,len-1);
        for(int i=0;i<len;i++){
            printf("%d=%d\n",i,a[i]);
        }
        return 0;
    }
    

二维码加载中...
本文作者:HDC      文章标题: 归并排序
本文地址:http://hdcin.cn/?post=118
版权声明:若无注明,本文皆为“小胖Blog's”原创,转载请保留文章出处。
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论