摘要: 大小为N的数组A,其主要元素是一个出现次数超过N/2的元素(从而这样的元素只有一个或者不存在)算法:首先找出主要元素的一个候选元(难点)。这个候选元是唯一有可能是主要元素的元素。第二步确定是否这个候选元是主要元素。为了找出候选元,构造第二个数组B。比较A1和A2,如果它们相等则取其中之一加到数组B中;否则什么都不做;然后比较A3和A4,按同样的方式处理,其次类推直到读完这个数组,然后递归的寻找数组B中的候选元,它也是A的候选元。(PS:可以用A来代替B的作用从而避免使用附加数组)下面我的算法是使用了数组A来代替数组B//找出一个数组的主要元素的候选元,寻找过程中会改变数组的元素位置#inclu 阅读全文
posted @ 2013-07-18 13:22 老司机 阅读(818) 评论(2) 推荐(0) 编辑