Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 一个漂亮的算法-Boyer-Moore投票算法。有人知道类似的算法吗?_Algorithm - Fatal编程技术网

Algorithm 一个漂亮的算法-Boyer-Moore投票算法。有人知道类似的算法吗?

Algorithm 一个漂亮的算法-Boyer-Moore投票算法。有人知道类似的算法吗?,algorithm,Algorithm,Boyer-Moore多数投票算法采用了一种漂亮的方法,在第一次投票中突出显示可能的多数元素,然后在第二次投票中检查其有效性。有人知道类似的2次通过算法吗?尝试搜索,但找不到。谢谢你能分享一下这两种算法中的一些吗?如果你想寻找Boyer-Moore算法的推广,有一种是由 该算法正在寻找“频繁”元素的候选元素,其中“频繁”被定义为在(0,1)中重复1次 该算法生成一个1/Θ候选列表,其中一些可能是误报,但它从不缺少候选 该算法是一次通过算法。 如果您可以允许第二次传递数据,则很容易验证这些候选者中

Boyer-Moore多数投票算法采用了一种漂亮的方法,在第一次投票中突出显示可能的多数元素,然后在第二次投票中检查其有效性。有人知道类似的2次通过算法吗?尝试搜索,但找不到。谢谢你能分享一下这两种算法中的一些吗?

如果你想寻找Boyer-Moore算法的推广,有一种是由

该算法正在寻找“频繁”元素的候选元素,其中“频繁”被定义为在(0,1)中重复
1次

该算法生成一个
1/Θ
候选列表,其中一些可能是误报,但它从不缺少候选

该算法是一次通过算法。
如果您可以允许第二次传递数据,则很容易验证这些候选者中的哪一个确实“频繁”

算法的伪代码(取自I TAed):


问题是什么?还有其他漂亮的算法吗?(1)是(2),这是主体,你至少分享了1种算法,它们的原理是相似的,直到你认为哪一部分是原则?例如,
KMP
是一种两遍算法。看看,你觉得它们相似吗?另一个宝石是格雷厄姆·诺尔顿问题。谢谢你,阿米特。我在找这个!
1. PF = ∅
2. foreach element e∈S {
3.   if PF.hasKey(e) { // increase counter
4.     PF.value(e)++ // of existing elements
5.   }
6.   Else {
7.     PF.insert(e,1) // insert new element
8.     If |PF|== 1/θ { // but if PF is full
9.       Foreach key ∈ PF {
10.        PF.value(k)-- // decrease all counters
11.        if PF.value(k) == 0 { // and remove
12.          PF.remove(k) // elements at 0
13. } } } } }
14. Output PF