一、 实验目的:
答:通过实现实验内容中的问题,掌握和巩固分治法求解问题的实
现步骤,思想和程序实现。通过不同方法的比较,深刻了解分治法
的内涵。
二、 实验内容(众数问题):
*问题描述:给定含有 n 个元素的多重集合 s,每个元素在 s 中出现的次数称为
该元素的重数。多重集 s 中重数最大的元素称为众数。
例如,s={1,2,2,2,3,5}。
多重集 s 的众数是 2,其重数为 3.
*算法设计:对于给定的由 n 个自然数组成的多重集 s,计算 s 的众数及其重数。
*数据输入:输入数据由文件名为 input.txt 的文本文件提供。文件的第 1 行为多
重集 s 中元素个数 n,在接下来的 n 行中,每行有一个自然数,
*结果输出:将计算结果输出到文件 output.txt。
三、数组下标法:
(1)思路:先求出集合中的最大数,以这个最大数来动态建立以数组,再记
录与数组下标相等的集合中的元素的个数(保存在数组中),找出其最大值并
输出最大值及其下标即可。
(2)特点:算法实现比较简单,有时时间复杂度比其他算法好,但是浪费内
存空间。
(3)程序实现:
#include <fstream.h>
#include <iostream.h>
#include <stdlib.h>
#include <cstdlib>
#include <sys/timeb.h>
#include <time.h>