用hash表实现搜索(《编程珠玑》第九章)
来源:互联网 发布:淘宝介入后卖家输后果 编辑:程序博客网 时间:2024/05/05 03:41
用hash表实现搜索,时间复杂度是O(n),但是空间复杂度也是O(n),一般要比n大。优点是待搜索的数组不需要是排序好的。
此代码用链表来实现hash表的,用链表来解决冲突,我觉得这个解决冲突的办法相对高效些。
#include<iostream>#include<vector>#include<list>#include<algorithm>using namespace std;vector<list<int> > hashTable(1000);int hashCode(int n){<span style="white-space:pre"></span>return n%1000;}void insert(int n){hashTable[hashCode(n)].push_back(n);}bool find(int n){list<int>::iterator iter1=hashTable[hashCode(n)].begin();list<int>::iterator iter2=hashTable[hashCode(n)].end();while(iter1!=iter2){if(*iter1==n)return true;iter1++;}return false;}int main(){int A[1000];generate_n(A,1000,rand);for(int i=0;i<1000;i++)insert(A[i]);int n;while(cin>>n)cout<<find(n)<<endl;system("pause"); <span style="white-space:pre"></span>return 0;}
0 0
- 用hash表实现搜索(《编程珠玑》第九章)
- 编程珠玑第九章
- 【编程珠玑】第十三章 搜索
- 【编程珠玑】第九章 代码调优
- 编程珠玑第九章-代码优化 读书笔记
- 编程珠玑第九章——习题
- 编程珠玑第九|十章学习总结
- 编程珠玑 第九章 第六题 (isdigit \ isupper\islower)的实现
- 编程珠玑第13章 搜索
- 《编程珠玑》第一章第九题
- 编程珠玑习题第四章第九题的感想
- 编程珠玑(2)第九章学习笔记
- 编程珠玑第九章--性能之代码调优
- 编程珠玑 第十五章 散列表应用 hash字符串
- 编程珠玑第五章习题五——C++实现二分搜索时进行错误检测
- 编程珠玑第五章二分搜索(折半查找)之java实现
- 编程珠玑之二分搜索
- 编程珠玑第二章的算法实现
- 链表的一个C代码实例
- Linux uid和gid
- NSString方法亲测
- HDU 3802 Ipad,IPhone 数论 矩阵乘法
- 乱码问题
- 用hash表实现搜索(《编程珠玑》第九章)
- IOS开发之JSON转PLIST(把存储json格式的文件转换成plist文件)
- JAVA英尺转换厘米程序。
- Vim中关于 cscope 的帮助
- ubuntu下SVN服务器安装配置
- 链表C宏实例 摘自 linux 内核
- linux中/dev/null,/dev/zero,/dev/random,/dev/urandom
- HDU 2588 GCD 欧拉函数
- ZOJ 3829 贪心 思维题