#include <iostream>
using namespace std;

#define N 100

int g_array[N];     //存放输入的数字
static int count;   //存放元素的个数

// 初始化函数
void Initial()
{
    cout << "请输入元素的个数:";
    cin >> count;
    cout << "请输入" << count << "个元素:";
    for(int i = 0; i < count; i ++)
    {
        cin >> g_array[i];
    }
}

//合并函数
void Merge(int a[], int l, int m, int r)
{
    int i = l, j = m+1, k = l;
    int b[N];
    while(i <= m && j <= r)
    {
        if(a[i] <= a[j])
        {
            b[k++] = a[i++];
        }
        else
        {
            b[k++] = a[j++];
        }
    }

if(i > m)
    {
        for(int p = j; p <= r; p ++)
        {
            b[k++] = a[p];
        }
    }
    else
    {
        for(int p = i; p <= m; p ++)
        {
            b[k++] = a[p];
        }
    }

//把b[]中排好的元素copy到a[]中
    for(int q = l; q <= r; q ++)
    {
        a[q] = b[q];
    }
}

//  归并排序 递归算法表示
void Bottomupsort(int a[], int left, int right)
{
    if(left < right)    //数组至少要有两个元素
    {
        int i = (right + left)/2;
        Bottomupsort(a, left, i);
        Bottomupsort(a, i+1, right);
        Merge(a, left, i, right); //把left到right的元素排序好
    }
}

//打印排好序的数组
void Print()
{
    cout << "经过Bottomupsort后:";
    for(int i = 0; i < count; i ++)
    {
        cout << g_array[i] << " ";
    }
    cout << endl;
}

int main()
{
    Initial();
    if(count > 1)
    {
        Bottomupsort(g_array, 0, count-1);
        Print();
    }
    else if(count == 1)
    {
        Print();
    }
    system("pause");
    return 0;
}

转载于:https://www.cnblogs.com/loveincode/p/4496647.html

算法设计与分析 上机题Mergesort相关推荐

  1. Contest3032 - 计科2101~2104算法设计与分析上机作业03

    目录 问题 A: 质数 问题 B: 分治法求解全排列问题 问题 C: 数的计数 问题 D: 最大公共子序列问题 问题 E: 分解式的个数 问题 F: 矩阵最优连乘问题 问题 A: 质数 题目描述 判断 ...

  2. 《算法设计与分析(第4版)》课后习题第二章第2小题

    <算法设计与分析(第4版)>课后习题第二章第2小题 下面的7个算法与本章中的二分搜索算法binarySearch略有不同.请判断这7个算法的正确性,并说明原因和证明. 第二章二分搜索算法b ...

  3. 【算法设计与分析】经典常考三十三道例题AC代码

    ❥小虾目前大三,我校在大一下开设<数据结构>这门课,大二上开了<算法设计与分析>这门课,很庆幸这两门课的上机考试总成绩一门100,一门99,最后总分也都90+.下文会给出机试的 ...

  4. 循环赛日程表非递归Java_王晓东《算法设计与分析》课件.ppt

    <王晓东<算法设计与分析>课件.ppt>由会员分享,可在线阅读,更多相关<王晓东<算法设计与分析>课件.ppt(356页珍藏版)>请在人人文库网上搜索. ...

  5. 程振波 算法设计与分析_算法设计与分析

    本书按照教育部*制定的计算机科学与技术专业规范的教学大纲编写,努力与国际计算机学科的教学要求接轨.强调 算法 与 数据结构 之间密不可分的联系,因而强调融数据类型与定义在该类型上的运算于一体的抽象数据 ...

  6. 【图的着色问题】算法设计与分析实验1

    计算机科学与工程学院实验报告 课程名称 算法设计与分析 班级 实验内容 实验1:图的着色问题 指导教师 姓名 重剑DS 学号 实验日期 2022.04.28 一.问题描述,含输入.输出数据内容.格式 ...

  7. 计算机算法设计与分析教学大纲,算法设计与分析的教与学(教学大纲)

    原标题:算法设计与分析的教与学(教学大纲) 课程代码:**** 课程负责人: **** 课程中文名称:算法设计与分析 课程英文名称:Designand Analysis of Algorithms 课 ...

  8. 算法设计与分析——分治法

    主要思想 (其实有这个思想也想不出来): 1.划分:整个问题划分成多个子问题 2.求解:求解各子问题的解 3.合并:合并子问题的解 (手说:"我会了",脑子:"不会&qu ...

  9. 算法设计与分析 课程设计之N皇后问题

    题目 N皇后回溯法求解空间 目的要求 目的: 1.用学到的书本知识解决实际问题的能力: 2.锻炼实际工作所需要的动手能力: 3.加强对数据结构和算法的应用: 4.锻炼自己以科学理论和工程上能力的技术, ...

最新文章

  1. [case19]聊聊eureka的TaskDispatcher
  2. C语言 | 哈夫曼(haffman)算法实现数据的解压缩(源代码)
  3. Flink 1.11 SQL 十余项革新大揭秘,哪些演变在便捷你的使用体验?
  4. MySQL 过滤重复数据
  5. win10安装pytorch很慢,如何解决?
  6. mysql导入的sql文件导入到哪里了_mysql导入导出sql文件
  7. Python Day 19 面向对象(初识面向对象)
  8. Ubuntu/Linux备份/还原系统
  9. AceAdmin In MVC之控件
  10. SQLServer 启动问题,服务器错误代码126 解决办法
  11. php 模拟提交金数据,小程序提交表单到金数据实例
  12. APS高级计划排程系统的基本原理和排程步骤
  13. 用Cython加密Python代码这么简单
  14. 最简单实用的网易云爬虫!cloudmusic库带你起飞,歌曲、用户、评论信手捏来
  15. 2018传智黑马前端视频教程36期视频与源码完整版
  16. github博客Hexo引流到微信
  17. MOSFET反向恢复特性总结-4
  18. mongodb重置密码
  19. ibm服务器做系统按f几,台式机华硕主板u盘启动按f几(启动u盘的快捷键介绍)...
  20. 只需这10招,强壮骨骼到老非你莫属

热门文章

  1. JDBC ResultSet 可更新的结果集
  2. KVO 实现两个页面之间的通信
  3. 第二十六讲:tapestry的树状(tree)组件
  4. Exchange系列—群集连续复制配置
  5. Php global echo,php中global和$GLOBALS[]的分析之一
  6. 实现ip数据包抓取并分析_一些网站https证书出现问题的情况分析
  7. tum数据集_数值预报尚能战否?来自数据驱动的挑战
  8. tp5 database.php,Tp5项目修改数据库
  9. android+sim卡短信,android 信息(mms)开发(七)-- sim卡短信
  10. linux定时器跑命令,linux下运行定时器(cron/centos/js脚本)