| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 962 人关注过本帖
标题:算法求解
只看楼主 加入收藏
穿云裂
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-3-24
收藏
 问题点数:0 回复次数:10 
算法求解
输入100个以内的数,求出这些数中出现次数最多并且数值最大的那个数(先看出现次数,次数相同才看大小),给出算法,越优越好。
搜索更多相关主题的帖子: 求解 算法 
2006-03-25 01:33
ytyt654
Rank: 2
等 级:新手上路
威 望:4
帖 子:195
专家分:0
注 册:2006-2-13
收藏
得分:0 

private class ClsValueCount
{
private int m_Value;
private int m_Count;

public ClsValueCount(int p_intValue, int p_intCount)
{
m_Value = p_intValue;
m_Count = p_intCount;
}

public int Value
{
get
{
return m_Value;
}

set
{
m_Value = value;
}
}

public int Count
{
get
{
return m_Count;
}

set
{
m_Count = value;
}
}
}

private ClsValueCount GetValueCount(int p_intValue, ArrayList p_arrayList)
{
if (p_arrayList == null)
{
return null;
}
foreach (ClsValueCount valueCount in p_arrayList)
{
if (valueCount.Value == p_intValue)
{
return valueCount;
}
}

return null;
}

private ClsValueCount GetMaxValueCount(ArrayList p_arrayList)
{
if ((p_arrayList == null) || (p_arrayList.Count < 1))
{
return null;
}
if (p_arrayList.Count == 1)
{
return p_arrayList[0] as ClsValueCount;
}
ClsValueCount valueCountMax = null;
foreach (ClsValueCount valueCount in p_arrayList)
{
if ((valueCountMax == null) || (valueCountMax.Value < valueCount.Value))
{
valueCountMax = valueCount;
}
}

return valueCountMax;
}

private void ShowData(ArrayList p_arrayListValueCounts, RichTextBox p_richTextBox)
{
p_richTextBox.Text = "";
foreach (ClsValueCount valueCount in p_arrayListValueCounts)
{
p_richTextBox.Text += valueCount.Value.ToString() + " : " + valueCount.Count.ToString() + "\n";
}
}

private void button7_Click(object sender, System.EventArgs e)
{
Random random = new Random();
int[] arrInts = new int[100];
for (int i = 0; i < arrInts.Length; i++)
{
arrInts[i] = random.Next(100);
}

ArrayList arrayList = new ArrayList();
ClsValueCount valueCount = null;
for (int i = 0; i < arrInts.Length; i++)
{
valueCount = GetValueCount(arrInts[i], arrayList);
if (valueCount == null)
{
valueCount = new ClsValueCount(arrInts[i], 1);
arrayList.Add(valueCount);
}
else
{
valueCount.Count++;
}
}

ArrayList arrayListMax = new ArrayList();
foreach (ClsValueCount valueCount1 in arrayList)
{
if (arrayListMax.Count == 0)
{
arrayListMax.Add(valueCount1);
}
else
{
if (valueCount1.Count > ((ClsValueCount)arrayListMax[0]).Count)
{
arrayListMax.Clear();
arrayListMax.Add(valueCount1);
}
else if (valueCount1.Count == ((ClsValueCount)arrayListMax[0]).Count)
{
arrayListMax.Add(valueCount1);
}
}
}

ShowData(arrayList, richTextBox1);
ShowData(arrayListMax, richTextBox2);

valueCount = GetMaxValueCount(arrayListMax);
if (valueCount != null)
{
MessageBox.Show(valueCount.Value.ToString() + " " + valueCount.Count.ToString());
}
else
{
MessageBox.Show("MaxNotFound!");
}
}

算法保证正确, 不保证最优!


开始的时候我也考虑用Hashtable, 可是具体实现时有一些问题不好解决, 于是改成用自定义类ClsValueCount和ArrayList来实现.








ltr2002 ,有好算法的把代码贴出来, 大家一起学习.不要光说不练.
对于某些进行人身攻击的小人表示强烈抗议!!!

建议版主采取适当措施以维护本论坛交流学习的良好氛围

[此贴子已经被作者于2006-4-5 8:28:21编辑过]


2006-03-25 14:29
moderndai
Rank: 1
等 级:新手上路
帖 子:104
专家分:0
注 册:2006-1-25
收藏
得分:0 
楼主自己代码都没有。。。。。。

ROCK AND ROCK PROGRAMING dai--yl@&&espricle@
2006-03-25 16:45
夜空的星星
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-3-17
收藏
得分:0 
2楼用什么算法的?请说明
我想了个算法,是用Hash表法

qq:58926957 技术群:22185706
2006-03-25 18:59
summoner
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1622
专家分:0
注 册:2005-3-3
收藏
得分:0 

先将输入的100个以内的数进行冒泡法排序,排成由大到小的顺序,这样一来相同大小的数就挨在一快了,接下来就很容易办了


[URL=javascript:window.close();e=new Enumerator(window.opener.document.images);for(;!e.atEnd();e.moveNext()){e.item().src=\'http://blog./UploadFiles/2007-1/117175967.gif\';}]其疾如風、其徐如林、侵掠如火、不動如山、難知如陰、動如雷震[/URL]
2006-03-26 23:35
ltr2002
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-4
收藏
得分:0 
2楼的是垃圾算法,程序写成他那样,我建议2楼真的去跳楼吧!
2006-04-04 16:35
天气预报不准
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-3-16
收藏
得分:0 

楼上的你用的是什么算法?
请指教!


哎!发型有点乱。。。。。。
2006-04-04 17:27
一直很安静
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-3-31
收藏
得分:0 
对啊,有本事把你的算法写出来啊!只会说别人坏话,哼

不喜欢这种人,我挺佩服2楼的

qq:33534255
2006-04-04 22:46
least
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-4-11
收藏
得分:0 
2楼的代码太多了,看得头都有点晕了.不过挺佩服你的,至少你写出来了,我还没试验过!~~呵呵
2006-04-11 10:38
飞侠
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-4-18
收藏
得分:0 
以下是引用ltr2002在2006-4-4 16:35:00的发言:
2楼的是垃圾算法,程序写成他那样,我建议2楼真的去跳楼吧!

这人的素质真差,自己行就写出来,只会在那里骂人,我认为别人写的挺不错的,支持!!!!!!!!!!!!!!!

2006-04-19 12:34
快速回复:算法求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017249 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved