选择数组中最大票数的最快算法是什么?

What is the fastest algorithm to choose the max votes in an array?

问题:

正在进行员工投票以选择下一任董事会成员:

选择董事会成员最有效的算法是什么?

子问题:如果我们知道候选人数小于选民数怎么办,有没有更高效的算法?

可能的解决方案?

在这种情况下使用散列 table 是否有意义,因为每个被提名人​​都有一个唯一的 ID?

或者我们可以先对数组进行排序(假设数组最初未排序),然后通过遍历数组并跟踪最大计数器来跟踪获胜者:

票数[id] = [1,1,1,2,2,3,3,3,3,4]

所以只需遍历整个数组,maxCount = 4 for voterID = 3

那么,3是赢家?

经典 space 与性能权衡。

哈希 table 遍历数据 (N)。 排序 + 计数需要 (N logN + N).