在某些情况下,boyer moore最大投票算法会失败吗?

时间:2016-12-25 17:10:02

标签: algorithm boyer-moore

考虑以下带有元素的数组:

0  5  1  5  2  5

算法不会返回5作为多数元素,但在第一遍结束时将2视为多数元素,计数为0.

这是伪代码:

num1 = array[0], count = 0;
for(int n : array){
    if (n == num1)
        count++;
    else if(count == 0)
        num1 = n;
        count = 1;
    else
        count--;
}

在此迭代结束时,num1将包含元素“2”,count将为0。 我该如何使算法工作以返回元素'5'?

0 个答案:

没有答案