软件工程作业--找水王
题目:
•三人行设计了一个灌水论坛。
信息学院的学生都喜欢在上面交流灌水,
传说在论坛上有一个“水王”,他不但喜欢发帖,
还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
•如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?
设计思想:
1.可以将题目简单的做一个抽象:给你一个数组,里面有超过一半的数字是一样的,你的任务就是找出这个数字。
2.首先想到的就是对数组中的数进行排序,然后遍历,出现最多的昵称就是“水王”,但是很显然这不是个简单的做法,pass。
3.再次设想下,可以在大数组中随机抽出几十个数据,然后搜索ID最多的就是“水王”,但是此程序设计不够严谨,时间复杂度也并没有变,pass。
4.以上两种思路时间复杂度都是O(N * log2N + N)。
5.现在,可以这样想,假如每次删除两个不同的数(不管包括不包括最高频数),那么,在剩下的数字里,原最高频数出现的频率一样超过了50%,不断重复这个过程,最后剩下的将全是同样的数字,即最高频数。此算法避免的排序,时间复杂度只为O(N)。
代码如下:
public class Find {
int[] ID=new int[100];
int Rand()//生成0-1内的随机数
{
java.util.Random random=new java.util.Random();// 定义随机类
int result=random.nextInt(2);// 返回[0,2)集合中的整数,注意不包括2
return result;
}
void FirstC()//初始化数组;
{
for(int i=0;i<100;i++)
{
if(Rand()!=0)
{
ID[i]=0;//水王的ID
}
else
{
ID[i]=i;
}
}
}
void Out()
{
System.out.println("以下是水贴的ID单");
for(int i=1;i<=ID.length;i++)
{
System.out.print(ID[i-1]+" ");
if(i%5==0)
{
System.out.print("\n");
}
}
}
int Serch()//思想实现部分
{
int candIDate=50;
int ntimes,i;
for(i = ntimes = 0;i<ID.length;i++){
if(ntimes == 0){
candIDate = ID[i];
ntimes = 1;
}
else{
if(candIDate == ID[i])
ntimes ++;
else
ntimes --;
}
}
return candIDate;
}
public static void main(String[] args) {
Find a = new Find();
a.FirstC();
a.Out();
System.out.println("水王的ID是"+a.Serch());
}
}
实现截图:
修改代码将水王的ID改为其他数字验证正确性:
截图:![](data:image/png;base64,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)
个人总结:
一个程序实现的方法有好多种,但是好的工程师总能在短时间内找出一个较为简单的算法去实现它,这和编程能力无关,关键在于是否有思想有想法。
一个较为简单的实现方法对于计算机来说可能会节省很多时间和空间,也正是程序健壮性的根本所在,程序编写者的思想是非常重要的。