阅读背景:

Weiss-(DSAA - in C,2.19) 大小为N的数组A,其主要元素出现次数超过N/2

来源:互联网 
/*
  大小为N的数组A,其主要元素是一个出现次数超过N/2的元素(这样的元素只有一个)
  算法概要:
    第一步:
    找出主要元素的一个候选元(这是难点)。这个候选元是唯一有可能是主要元素的元素。
    第二步:
    确定是否这个候选元是主要元素。
    
    为了找出候选元,构造第二个数组B。
    比较A1和A2,如果它们相等则取其中之一加到数组B中;否则什么都不做;
    然后比较A3和A4,按同样的方式处理,其次类推直到读完这个数组,
    然后递归的寻找数组B中的候选元,它也是A的候选元. (为什么?)
    
    a, 递归如何终止?
    b, 当N是奇数时, 如何处理?
    c, 该算法的运行时间是多少?
    d, 我们如何避免使用附加数组B?
    e, 编写一个程序求解主要元素.

*//*
  大小为N的数组A,其主要元素是一个出现次数超过N/2的元素(这样的元素只有一个)
 



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: