发帖水王

寻找所有帖子中,帖子总数超过一半的作者,每个作者的ID是唯一的。
第一种解法:将这些ID全部排序假设有N个,则第N/2项的ID一定是“水王”的ID。这里排序的时间最少需要NlogN。
第二种解法:可以采用分治的思想,每次删除2个不同的ID,则剩下的ID中,“水王”的ID出现次数仍然超过总数的一半。

Type Find(Type *ID,int N)
{
	Type candicate;
	int time=0;
	for(int i=0;i


拓展:有3个发帖很多的ID,他们发帖数目超过帖子总数N的1/4。找出他们的ID。
void Find(Type *ID,int N,Type candicate[3])
{
	int time[3]=0;
	for(int i=0;i




你可能感兴趣的:(编程之美)