输入: n 个元素的数组 A[1...n]
输出:若存在多数元素,则输出;否则输出none
步骤:
1将计数器i置1,并令c=a[j]
2从a[2]开始扫,被扫描的元素和c相等,计数器+1,不相等计数器-1,
3如果所有元素都扫描完毕并且计数器大于0,返回c作为多数元素的候选者。
4如果在c和a[j](1<j<n)比较时计数器为0,那么返回对于a[j+1,...n]上的元素递归调用1.2.3过程。
时间复杂度分析
把序列中的每个元素和其他每个元素比较,并且对每个元素计数,如果某个元素的计数大于n/2,就可以判断它是多数元素,否则无多数元素。但是这样的比较次数是n(n-1)/2=O(n^2),