“找贴吧水王”-----找数组中出现次数超过数组一半的数或者正好为一半的数

本文介绍了一种高效算法,用于查找数组中出现次数超过一半的数。通过遍历数组并利用抵消思想减少重复计算,该算法能在O(n)时间内找到目标元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//查找数组中出现次数超过一半的数。
int Find_Times_Is_Half(int arr[] , int N)
{
	int times = 0;int candidate;
	for (int i = 0; i < N; i++)
	{
		if(times == 0)
		{
			candidate = arr[i];
			times = 1;
		}
		else if(candidate == arr[i])
			times ++;
		else
			times --;
	}
	return candidate;
}

//这种方法也可以求超过一半的出现次数的数(本身就是从求超过一半衍生过来的)。只需将下面times和candidate初始化的时候全部初始化为0;
//只需虚幻的给数组头加上一个arr[0]。
int Find_Times_Is_Half(int arr[] , int N)
{
	int times = 1;int candidate = arr[0];
	for (int i = 0; i < N; i++)
	{
		if(times == 0)
		{
			candidate = arr[i];
			times = 1;
		}
		else if(candidate == arr[i])
			times ++;
		else
			times --;
	}
	return candidate;
}
void main_of_FindTimesIsHalf()
{
	int arr1[4] = {0 , 1 , 2 , 1};
	printf_s("%d\n" , Find_Times_Is_Half(arr1 , 4));
	int arr2[4] = {1 , 1 , 2 , 0};
	printf_s("%d\n" , Find_Times_Is_Half(arr2 , 4));
	int arr3[6] = {1 , 0 , 2 , 1 , 2 , 1};
	printf_s("%d\n" , Find_Times_Is_Half(arr3 , 6));
	
}

sql server ce 的工具 非常有用 SQL Server 2005 移动版(SQL Server Mobile)或SQL Server 2000 Windows CE 2.0版(SQL Server CE 2.0)的企业和个人用户如果计划与SQL Server 2000或SQL Server 2005数据库保持同步,需要在您运行Microsoft Internet Information Services(IIS)的服务器上安装互联工具。 本页内容表述的是互联工具。请注意文件名中的“xx”是代表安装语言的标识符。最初仅有英文互联工具信息(“en”即标识符“XX”)。为满足向后兼容的需要,我们提供SQL Server CE 2.0复制软件。 请查阅安装互联工具的设置说明。 1. Microsoft SQL Server 2005移动版服务器工具(sqlce30setupxx.msi)在IIS 箱中安装SQL Server Mobile复制组件。 这个组件用于把移动设备中的SQL Server Mobile连接到SQL Server 2005、SQL Server 2000 SP3a、及 SQL Server 2000 SP4数据库。 2. Microsoft SQL Server 2000 Service Pack 4复制组件(sql2kxxsp4.msi)在IIS机器中安装SQL Server 2000 SP3a复制组件。这个组件用于把移动设备中的SQL Mobile数据库连接到SQL Server 2000 SP4数据库。 3. Microsoft SQL Server 2000 Service Pack 3a复制组件(sql2kxxsp3a.msi)在IIS机器中安装 SQL Server CE 2.0 及 SQL Server 2000 SP4 复制组件。 该组件用于把移动设备中的SQL Server CE 2.0数据库连接到SQL Server 2000 SP3a数据库。 4. 用于SQL Server 2000 SP4 (sqlce20sql2ksp4.exe)的SQL Server CE 2.0 复制组件在IIS机器中安装 SQL Server CE 2.0 及 SQL Server 2000 SP4 复制组件。该组件用于把移动设备中的SQL Server CE 2.0数据库连接到SQL Server 2000 SP4。 5. 用于SQL Server 2000 SP3a (sqlce20sql2ksp3a.exe)的SQL Server CE 2.0复制组件在IIS机器中安装SQL Server CE 2.0 及 SQL Server 2000 SP3a 复制组件。该组件用于把移动设备中的SQL Server CE 2.0数据库连接到SQL Server 2000 SP3a 数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值