大数据处理

先在0-10以内的数字找到其中重复次数最多数字

先让一个数组长度为十,让0到10的数字每出现一次就让数组中对应下标的数字加一

定义一个结构体让结构体定义一个整型一个保存现在出现次数最多的数字另一个保存出现最多数字的次数

定义结构体代码如下

typedef struct Hash
{
	int num;
	int times;
}Hash;

然后输出结构体中的代表 最多次数的数字 和 最多次数的数字的次数的两个值
代码如下
void GetMaxTimes0(int *arr,int len)
{                    
	int brr[10] = {0};//数据出现的范围
	Hash h = {0}; //保存出现次数最多的数字及次数
	for(int i=0;i<len;i++)//遍历arr
	{
		brr[arr[i]]++;
	}
	for(int i=0;i<10;i++)//遍历brr
	{
		if(brr[i] > h.times)
		{
			h.num = i;
			h.times = brr[i];
		}
	}

	printf("数字=%d,次数=%d\n",h.num,h.times);
}
但是这只在小范围数字中才有效,如果数字范围太广遍历时间就会太长
可以通过哈希和归并来解决  

哈希的除留余数 让遍历得到的数字余一个数等于这个数的放在一起比较  代码如下
void GetMaxTimes(int *arr,int len)
{
	int brr[5] = {0};//数据出现的范围
	Hash h0 = {0}; //保存出现偶数次数最多的数字及次数
	Hash h1 = {0};//保存出现奇数次数最多的数字及次数
	int i;
	for(i=0;i<len;i++)//处理x%2 == 0的数据
	{//0,2,4,6,8->0,1,2,3,4
		if(arr[i]%2 == 0)
		{
			brr[arr[i]/2]++;
		}
	}
	for(i=0;i<5;i++)
	{
		if(brr[i] > h0.times)
		{
			h0.times = brr[i];
			h0.num = i*2;//将下标还原原有的数字
		}
	}

	memset(brr,0,5*sizeof(int));

	for(i=0;i<len;i++)//处理x%2 == 1的数据
	{//1,3,5,7,9->0,1,2,3,4
		if(arr[i]%2 != 0)
		{
			brr[arr[i]/2]++;
		}
	}


	for(i=0;i<5;i++)
	{
		if(brr[i] > h1.times)
		{
			h1.times = brr[i];
			h1.num = 2*i+1;
		}
	}

	h0 = (h0.times>h1.times) ? h0 : h1;
	printf("数字=%d,次数=%d\n",h0.num,h0.times);
}
或者可以把这些数字每几个放一起比较得出来的在进行比较  代码如下
void GetMaxTime(const char *path)
{
	FILE *fr = fopen(path,"rb");
	assert(fr != NULL);
	int brr[10] = {0};
	Hash h = {0,0};
	int tmp;
	while(fread(&tmp,sizeof(int),1,fr) > 0)//等同arr
	{
		brr[tmp]++;
	}

	for(int i=0;i<10;i++)
	{
		if(brr[i] > h.times)
		{
			h.num = i;
			h.times = brr[i];
		}
	}

	fclose(fr);

	printf("数字=%d,次数=%d\n",h.num,h.times);
}
通过随机数来建立一个大小为一万的数字库
void CreateNum(const char *path)
{
	FILE *fw = fopen(path,"wb");
	assert(fw != NULL);

	int tmp;
	for(int i=0;i<NUM_SIZE;i++)
	{
		tmp = rand()%10;
		fwrite(&tmp,sizeof(int),1,fw);
	}

	fclose(fw);
}






1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值