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

    描述

    给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中两路合并排序算法进行排序,并输出排序最后结果的相应序列。

    输入

    共两行,第一行给出排序元素数目n,第二行给出n个元素,1n100000,每个元素值范围为 [0100000] 

    输出

    一行,输出排序结果。

    样例输入

    7
    48 36 68 72 12 48 2

    样例输出

    2 12 36 48 48 68 72

     

    #include<stdio.h>
    #include<malloc.h>
    #define MaxSize 100
    
    void Merge(int source[],int start1,int end1,int start2,int end2)
    {
        int k=0;
        int i=start1;
        int j=start2;
        int m,n=0;
        int temp[100000];
        while(i<=end1&&j<=end2)
        {
            if(source[i]<=source[j])
                temp[k++]=source[i++];
            else
                temp[k++]=source[j++];
        }
        while(i<=end1)
        {
            temp[k++]=source[i++];
        }
        while(j<=end2)
        {
            temp[k++]=source[j++];
        }
    
        m=start1;
        for(;n<k;n++)
        {
            source[m++]=temp[n];
        }
    }
    
    
    void MergeSort(int source[],int start,int end)
    {
        int mid;
        if(start<end)
        {
            mid=(start+end)/2;
            MergeSort(source,start,mid);
            MergeSort(source,mid+1,end);
    
            Merge(source,start,mid,mid+1,end);
        }
    
    
    }
    
    
    void main()
    {
        int n,i=0;
        int source[100000];
        scanf("%d
    ",&n);
        while(i<n)
        {
            scanf("%d",&source[i++]);
        }
    
        MergeSort(source,0,n-1);
        for(i=0;i<n-1;i++)
        {
            printf("%d ",source[i]);
        }
        printf("%d
    ",source[n-1]);
    
    
        
    }
  • 相关阅读:
    友链
    利用jenkins插件查看allure报告
    python pyyaml操作yaml配置文件
    数组类型
    接口测试--加密算法
    python赋值,深拷贝和浅拷贝的区别
    RF中在测试用例集上设置标签
    python中json.dump()与json.dumps()的区别
    python 日期与字符串之间的转换
    python operator操作符函数
  • 原文地址:https://www.cnblogs.com/rolly-yan/p/3935977.html
Copyright © 2011-2022 走看看