当前位置: 首页 > news >正文

网站建设注册什么公司做数学题挣钱的网站

网站建设注册什么公司,做数学题挣钱的网站,金溪做网站,如何制作网页广告文章目录 前言一、哈希表的思想二、哈希表总结 前言 散列技术#xff1a;在记录的存储位置和它的关键字之间建立一个确定的对应关系f#xff0c;使得每个关键字key对应一个存储位置f(key) 哈希表#xff1a;采用散列技术将记录存储在一块连续的存储空间中#xff0c;这块连… 文章目录 前言一、哈希表的思想二、哈希表总结 前言 散列技术在记录的存储位置和它的关键字之间建立一个确定的对应关系f使得每个关键字key对应一个存储位置f(key) 哈希表采用散列技术将记录存储在一块连续的存储空间中这块连续存储空间称为散列表或哈希表 一、哈希表的思想 创建哈希表结构体创建哈希表数据结构HashTable用来存放散列地址和该散列表存放的数据个数。 //创建哈希表结构 typedef struct HashTable {int count;//记录哈希表中元素个数int* elem;//创建哈希表 }HashTable;初始化哈希表初始化哈希表主要还是动态开辟存放数据的数组再初始化count的个数并将哈希表中的值赋值为空这里用NULLKEY标志来表示为空。 //初始化哈希表 void InitHashTable(HashTable* HT) {int i;m MAXSIZE;//动态开辟内存HT-elem (int*)malloc(m * sizeof(int));HT-count MAXSIZE;for (i 0; i m; i){HT-elem[i] NULLKEY;}}插入哈希表插入哈希表通过哈希函数Hash来计算出散列地址判断该地址是否为NULLKEY是的话就直接插入不是的话就将散列地址赋值为下一个地址继续判断直到找到了就执行插入操作。 //哈希表的插入 void InsertHashTable(HashTable* HT, int key) {int addr;addr Hash(key);//求散列地址while (HT-elem[addr] ! NULLKEY){addr (addr 1) % m;}HT-elem[addr] key; }查询哈希表先通过哈希函数获得散列地址再通过散列地址查询访问。在查询时如果通过散列地址找到的值和key值不等则散列地址找到下一个操作直到循环一圈或则通过地址找到的地址为NULLKEY就返回查找失败成功则返回查找成功。 //哈希表查找 int SearchHash(HashTable HT, int key) {int addr Hash(key);int begin addr;while (HT.elem[addr] ! key){addr (addr 1) % m;if (HT.elem[addr] NULLKEY || addr begin)return 0;}return 1; } 二、哈希表 #define MAXSIZE 12 #define NULLKEY -32768 #include iostream using namespace std;//哈希表查找//创建哈希表结构 typedef struct HashTable {int count;//记录哈希表中元素个数int* elem;//创建哈希表 }HashTable;int m 0;//初始化哈希表 void InitHashTable(HashTable* HT) {int i;m MAXSIZE;//动态开辟内存HT-elem (int*)malloc(m * sizeof(int));HT-count MAXSIZE;for (i 0; i m; i){HT-elem[i] NULLKEY;}}//散列函数 int Hash(int key) {return key % m; }//哈希表的插入 void InsertHashTable(HashTable* HT, int key) {int addr;addr Hash(key);//求散列地址while (HT-elem[addr] ! NULLKEY){addr (addr 1) % m;}HT-elem[addr] key; }//哈希表查找 int SearchHash(HashTable HT, int key) {int addr Hash(key);int begin addr;while (HT.elem[addr] ! key){addr (addr 1) % m;if (HT.elem[addr] NULLKEY || addr begin)return 0;}return 1; }int main() {int i,result,key;HashTable HT;int arr[MAXSIZE] { 12,67,56,16,25,37,22,29,15,47,48,34 };//初始化哈希表InitHashTable(HT);key 39;for (i 0; i m; i){InsertHashTable(HT, arr[i]);}result SearchHash(HT,key);if (result)printf(查找 %d 成功 \n, key);elseprintf(查找 %d 失败。\n, key);for (i 0; i m; i){key arr[i];result SearchHash(HT, key);if (result)printf(查找 %d 成功 \n, key);elseprintf(查找 %d 失败。\n, key);}return 0; }总结 散列表查找的效率是最高的因为它的时间复杂度为O(1)。可惜在实际情况中会产生冲突不同的数据在同一地址的情况但散列表查询还是非常值得的。
http://www.dnsts.com.cn/news/211028.html

相关文章:

  • 合肥建网站要多少钱遵义网站制作报价
  • 东营网站建设优化国内免费产品发布网站
  • 东莞网站优化案例安达市建设局网站
  • 东莞企业网站推广公司房子
  • 网络投票程序西安seo培训
  • 韩式摄影网站源码设计师服务平台破解
  • 网站联系我们模板优化设计答案四年级上册语文
  • 迁安做网站中的cms开发wordpress带投稿
  • 酒店预订网站模板食品分类目录
  • 学勇建站建站平台 iis
  • 网站建设补贴黄骅港务局
  • 二级网站内容建设要求wordpress 升级 ftp
  • html特效网站学做网站用到哪些知识
  • 网站如何做中英文双语言怎么注册自己的小程序
  • 给你一个网站你怎么做的服装网站建设费用分析
  • 织梦网站后台打不开成都排名seo公司
  • 纯静态网站怎么入侵wordpress portfolio 插件
  • 做小型网站的公司商标注册网址官方
  • 会员管理系统手机版龙口seo
  • 如何向搜索引擎提交网站免费模板网站哪个好
  • 做h5页面的网站有哪些创意网站模板下载
  • 邢台企业网站建设报价天津搜索引擎seo
  • 怎么给别人做网站网站厦门广告公司电话
  • 射洪做网站网站开发所需人才
  • 怎么分辨网站是不是h5怎么选一个适合自己的网站
  • 云梦县城乡建设局网站深圳的公司排名
  • 网站设计主流尺寸pc站和手机网站
  • 男学网站开发给别人做网站用做假酒验证
  • 会计公司网站模板地方网站成本
  • 东莞财务公司代注册公司淄博优化推广