算法之美——寻找发帖水王算法

算法题目来自于书籍《编程之美》,描述如下:

论坛中有人老是发水帖,现在管理员要通过某种方法把这个水贴大王找出来,请设计一个可行的算法。

首先第一个想到的就是遍历了,每遇到一个ID便将ID记录下来,并且count++;这是一个时间、空间复杂度都很大的一个算法,差评。

书上给了新的算法,算法的设计思想在于:每次删除两个不同的ID,删除之后剩下的水王的ID依然会大于总数的一半,这就意味着可以将问题分解,分解为一些小问题来解决,C++实现如下:

#include
using namespace std;
int find(int ID[], int n)
{
int sw;
int count;
for(int i=0;i


你可能感兴趣的:(算法设计)