1. 示例程序:
/* 求出现次数超过一半的数 */
int find(int * p, size_t len)
{
/* 参数合法性 */
if (NULL == p || 0 == len)
{
return -1;
}
/* 查找出现次数超过一半的数 */
int result;
int nTimes, i;
nTimes = 0;
for (i = 0; i < len; i++)
{
if (0 == nTimes)
{
result = p[i];
nTimes = 1;
}
else
{
if (result == p[i])
{
nTimes++;
}
else
{
nTimes--;
}
}
} // end of for
return result;
} // end