设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 831|回复: 0
打印 上一主题 下一主题

[讨论]算法实现题 众数问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 02:27:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
«问题描述:
给定含有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中。输出文件有2 行,第1 行给
出众数,第2 行是重数。
输入文件示例 输出文件示例
input.txt
6
1
2
2
2
3
5

output.txt

2
3



这是算法...
但我还看不懂...
我认为文件操作还好弄.就算法,它是用递归来做的.


void mode(int LL,int RR)
{
int L1,R1;
int med=median(a,LL,RR);
split(a,med,LL,RR,L1,R1);
if(largest<R1-L1+1) largest=R1-L1+1;element=med;
if(L1-LL>largest) mode(LL,L1-1);
if(RR-R1>largest) mode(R1+1,RR);
}
//median用于找中位数,split用中位数将数组分2为段.



[此问题还有待解决,谢谢各位的参与!]


//首先在此文件夹下建立名为qingsongin2.txt的文件
//其内容为6 1 2 2 2 3 5 之格式.其中第一的数为数组表长度
#include<iostream>
#include<fstream>
#define MAXSIZE 20
using namespace std;
typedef int KeyLype;
typedef int Status;
typedef struct {
KeyLype key;
} RedType;
typedef struct {
RedType r[MAXSIZE + 1];
int length;
} SqList;
int SelectSort(SqList &L)
{
int i,j,t;
for(j=0;j<L.length;j++)
for(i=1;i<=L.length-j;i++)
if(L.r[i].key<L.r[i-1].key)
{
t=L.r[i].key;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 08:46 , Processed in 0.135947 second(s), 8 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表