Hash表题目整数hash-HDOJ1425(转载)
来源:互联网 发布:魔兽月卡 知乎 编辑:程序博客网 时间:2024/06/06 02:07
哈希表(散列表)的基本原理:使用一个下标范围比较大的数组来存储元素,一般通过设计一个函数(哈希函数,即散列函数),使得每个元素的关键字都与一个函数值(即数组下标)相对应,然后用该数组单元来存储对应元素。
下面介绍用两道题目介绍一下hash表的用法:
题目描述:给你n个整数,请按从大到小的顺序输出其中前m大的数。
Input
每组测试数据有两行,第一行有两个数n,m (0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。
Output
对每组测试数据按从大到小的顺序输出前m大的数。
这个问题我们可以看到数据量很大而且整数处于[-500000,500000]之间,那么我们就可以用一个大的数组进行hash,然后进行统计。
1 #include "stdio.h" 2 #include "memory.h" 3 int a[1000001]; 4 int main() 5 { 6 int n,m; 7 int tmp; 8 int i; 9 int count;10 int flag = 0;11 while(scanf("%d%d",&n,&m)!=EOF)12 {13 count = 0;14 memset(a,0,sizeof(a[0])*1000001);15 for(i= 0;i<n;i++)16 {17 scanf("%d",&tmp);18 a[tmp+500000]=1;19 }20 flag = 0;21 for(i=1000000;i>=0;i--)22 {23 if(a[i]!=0)24 {25 if(!flag)26 {27 printf("%d",i-500000);28 flag = 1;29 }30 else31 {32 printf(" %d",i-500000);33 }34 count++;35 }36 37 if(count==m)38 break;39 }40 printf("\n");41 }42 return 0;43 44 }
- Hash表题目整数hash-HDOJ1425(转载)
- Hash表(转载)
- HDOJ1425 sort(最简单的hash)
- 整数hash
- 【转载】string(hash)
- 转载Hash表(C++实现)
- Hash表的扩容(转载)
- HDOJ1496 Equations(整数hash)
- hdu 题目1496 Equations , POJ 题目1840 Eqs (整数Hash)
- [转载]查找算法----Hash表
- 一致性hash算法(转载)
- hdu3066(集合hash成整数)
- Hash 函数、Hash表
- hash表、hash算法
- hash-A-hash表
- Hash表、Hash冲突
- 整数的Hash函数
- 整数Hash的应用
- Java Socket通信的序列化和反序列化代码介绍
- 利用C#2005实现数据表的基本操作
- Java基础:模式和框架的介绍和区别
- 结构体中申明枚举类型成员后,为什么结构体的长度为0
- 各种服务接口
- Hash表题目整数hash-HDOJ1425(转载)
- BindingSource控件介绍
- iTunes帐号授权超过5次重置方法
- 配置vs2010 包含库头文件,库文件
- 使用BindingSource连接数据库
- 关于 extern inline
- Linux 使用脚本安装Tomcat并部署程序
- 【MySQL】关于大表记录的删除
- Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效