一、前言
哈希表:可以直接进行查询/访问的数据结构;我们通常通过映射函数将关键字直接对应到表中的某个位置,从而加快查找速度。这里的映射函数叫哈希函数,存放记录的数组叫哈希表。
二、举例:
1.统计给定数组中每个元素出现的次数
#include <stdio.h>
#include "stdio.h"
#include <iostream>
#define MAX_TABLE_LEN 100
/*创建一个哈希函数*/
// a[] 代表输入数组
// table[] 代表哈希数组(这里假设输入数据为0-99范围内的整数)
// n 代表输入数组的长度
void create_hash(int a[], int n, int table[])
{
for(int i=0; i < n; i++)
{
/*[关键]用table的下表记录a[i]出现的次数*/
table[a[i]]++;
}
}
int main()
{
int a[] = {7,17,5,8,2,9,20,3,2,5};
int table[MAX_TABLE_LEN] = {0}; // 初始化哈希数组
create_hash(a,10,table); // 创建哈希函数
for(int i=0;i<MAX_TABLE_LEN;i++)
{
if(table[i]>0)
{
printf("%d appear %d times.\n",i,table[i]);
}
}
return 0;
}