软件工程个人作业07

一.设计思想

1.通过查找,每次从列表中删除两个不同的ID(不管是否包含“水王”的ID)

2.最后得出出现次数仍然超过总数的一半的ID

二.代码实现

public class ShuiWang {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] array={5,1,2,3,8,5,5,5,5,4,5};
		System.out.println(find(array));
	}
	public static int find(int[] array)
	{
		int m=array.length;
		int n=0;
		int a=0;
		for(int i=0;i<m;i++)
		{
			if(a==0)
			{
				n=array[i];
				a=1;
			}
			else
			{
				if(n==array[i])
				{
					++a;
				}
				else
				{
					--a;
				}
			}
				
		}
		return n;
	}
}

  

三.实现截图

四.个人总结

我采用的这个算法有个缺点,不能确切知道这个ID出现多少次,只能知道这个ID出现的次数大于一半如果想知道,最后还要遍历多次。

通过这次课堂测验,我知道了能做出来并不难,但是要用一个最佳方法才是我们应该考虑学习的。

原文地址:https://www.cnblogs.com/niujunyan/p/5499131.html