哈希表的简单应用
2018-02-19 22:35
459 查看
哈希表(Hash table,也叫散列表),
是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。例如:给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。
应用1:
找出一个字符串中第一个只出现一次的字符
是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。例如:给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。
应用1:
找出一个字符串中第一个只出现一次的字符
#include <iostream> #include <string> using namespace std; char FirstNotRepeat(const char *s) { if (NULL == s) return NULL; //字符char是一个长度为8的数据类型,因此总共有256种可能 const int hash_size = 256; int hashTable[hash_size] = {0}; //遍历字符串,一个字符对应一个数组下标 for (int i = 0; i < strlen(s); i++) { char ch = s[i]; ++hashTable[ch]; } //再次遍历字符串,比较数组中该字符下标对应的值(字符出现的次数) for (int i = 0; i < strlen(s); i++) { char ch = s[i]; if (hashTable[ch] == 1) return ch; } return '\0'; } int main() { char s[1000] = {0}; cin.getline(s, 1000); char ch = FirstNotRepeat(s); cout << ch << endl; return 0; }
相关文章推荐
- POJ-3349 简单哈希表的应用
- 哈希表的简单应用
- 哈希表的简单应用
- C# 哈希表结合动态数组的简单操作和应用
- 为你的基于SPRING的应用增加简单规则引擎
- NDS服务器之简单功能应用
- Ajax简单应用,检测用户名是否存在
- android handle 简单应用
- 【Android Developers Training】 32. 向其它应用发送简单数据
- Redis的简单应用
- Android基础学习总结(二)——六步轻松搞定RecyclerView简单应用
- android 的TableLayouyt的边框的简单应用
- 交互式网页应用的网页开发技术Ajax简单介绍
- Kotlin简单实用方法既使用Kotlin优雅的开发Android应用
- Quartz 新手自学(简单应用)
- ubuntu docker 安装及简单应用
- 队列简单应用
- [Java][转]Memcache —— 简单介绍:背景、原理、应用
- hash数组的一个简单应用
- Python字符串匹配的简单应用