算法补习-第五天-查找(中)
来源:互联网 发布:网易股票分时数据 编辑:程序博客网 时间:2024/05/01 10:54
哈希查找与索引查找
哈希查找:
用哈希技术的情况:从一个含m个元素的大集合中,取出n个元素组成小集合S
哈希技术的关键:哈希函数的构造;解决冲突的方法。
哈希函数的构造方法:
直接定址法,数字分析法,平分取中法,除留余数法。
解决冲突的方法:
开放定址法,再哈希法,链地址法。
方法讲解:
除留余数法:
H(key) = key mod p (p为不大于表长度(m)的质数)
开放定址法:
key1!=key2 但H(key1) = H(key2) 产生冲突
则同义词需按一定原则找新地址
Hi = ((H(key) + di) mod m
函数解释:
void InsertHash():
int SearchHash():
代码:
#include<iostream>using namespace std;int result,a[]={13,29,27,28,26,30,38};int hashLength = 13;int hash[13];void InsertHash(int hash[],int hashLength,int data){int hashAddress = data % 13;while(hash[hashAddress] != 0){hashAddress = (++hashAddress) % hashLength;}hash[hashAddress] = data;}int SearchHash(int hash[],int hashLength,int key){int hashAddress = key % hashLength;while(hash[hashAddress] != 0 && hash[hashAddress] != key){hashAddress = (++hashAddress) % hashLength;}if(hash[hashAddress] == 0) return -1;return hashAddress;}int main(){for(int i=0;i<7;i++){InsertHash(hash,hashLength,a[i]);}for(int i=1;i<13;i++){cout<<hash[i]<<",";}cout<<endl;cout<<"请输入要查找的数"<<endl;cin>>result;int index = SearchHash(hash,hashLength,result);if(index != -1)cout<<"它的位置在"<<index<<endl;elsecout<<"我擦嘞找不到这货";return 0;}
0 0
- 算法补习-第五天-查找(中)
- 算法补习-第四天-查找(上)
- 算法补习-第六天-查找(下)
- 算法补习-第一天-排序(上)
- 算法补习-第三天-排序(下)
- 算法补习-第二天-排序(中)
- 算法系列15天速成——第五天 五大经典查找【中】
- 算法系列15天速成——第五天 五大经典查找【中】
- 算法系列15天速成——第五天 五大经典查找【中】
- 算法系列15天速成——第五天 五大经典查找【中】
- 算法系列15天速成——第五天 五大经典查找【中】
- 算法补习-第七天-线性表(上)
- 第五天:算法
- 中软!第五天
- 刷CCF的算法题(第五天)
- (第五天)了
- java补习第三天
- YII框架学习 第五天(2) yii 查找数据扩展 数据模型criteria(条件)
- 前端性能优化--延迟加载js、css、图片等组件
- Android studio安装之前配置环境变量
- 获取手机唯一标识符(UUID+KeyChain)
- 《基于MFC的OpenGL编程》Part 11 Creating and Using Display Lists
- asp.net 浏览器文件下载
- 算法补习-第五天-查找(中)
- 很实用的VC打印代码
- 1087. All Roads Lead to Rome (30)<最短路径,在最短路径上操作>
- PyQt 5 入门指导教程
- CDN内容发布网络
- python爬虫基础知识
- Linux NFS服务器的安装与配置
- 软件开发大图景:两个维度,四个象限
- php中接口 强大之处 php_curl