• 合并排序


    描述

    给定输入排序元素数目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]);
    
    
        
    }
  • 相关阅读:
    docker 安装 clickhouse单机版
    CockRoachDB简介
    Ubuntu18.04 LTS Cockroach集群搭建
    ClickHouse 的一些优化参数
    ClickHouse 概念整理
    OOM Killer机制
    win10系统下载地址
    Quartz.Net在C#中的使用
    JavaScript的undefined与null、NaN的区别
    Java Web基础回顾 —JSP
  • 原文地址:https://www.cnblogs.com/rolly-yan/p/3935977.html
Copyright © 2020-2023  润新知