摩尔选举求众数
摩尔选举求众数
介绍
博耶-摩尔多数投票算法(Boyer–Moore majority vote algorithm),中文常作多数投票算法、摩尔投票算法等,是一种用来寻找一组元素中占多数元素的常数空间复杂度、线性时间复杂度算法。这一算法由罗伯特·S·博耶和J·斯特罗瑟·摩尔在1981年发表,也是处理数据流的一种典型算法。
图示
x轴为计数器中存储的元素,而下方y轴为输入的元素序列。遇到相同元素或者计数器中没有元素,计数器加入重复元素,如果遇到不同元素计数器消除一个元素。
算法示例
1 | int majorityElement(vector<int>& nums) { |
算法分析
- 时间复杂度
- 空间复杂度
例题
评论