题目描述 给定一个含n个整数顺序存储的线性表,按分治法思路,采用二分策略,设计一个求出其最大值和最小值算法,编写相应测试程序。要求使用分治法设计出其中求最大值、最小值组合的递归算法。 输入格式 若干整数,个数小于等于10000。 输出格式 最小值,最大值。
时间: 2024-06-06 07:08:26 浏览: 158
顺序表的实现及应用(含合并函数)
5星 · 资源好评率100%
算法思路:
采用分治法的思想,将线性表划分成左右两部分,对左右两部分递归求解最大值和最小值,最后将左右两部分的结果合并,得到整个线性表的最大值和最小值。
具体实现:
定义一个结构体Result,用于存储最大值和最小值。
定义一个函数findMaxMin,参数为线性表和线性表的起始位置和结束位置,返回值为Result类型。在函数中,先判断线性表是否为空或只有一个元素,如果是,则直接返回该元素即可。否则,将线性表划分成左右两部分,对左右两部分递归调用findMaxMin函数,得到左右两部分的最大值和最小值,然后将左右两部分的结果合并,得到整个线性表的最大值和最小值,最后返回Result类型的结果即可。
测试程序: 读入一系列整数,构成一个线性表,并调用findMaxMin函数求解最大值和最小值,并输出。
C++ 代码
阅读全文