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

iis6.0做网站压缩足球比赛今日最新推荐

iis6.0做网站压缩,足球比赛今日最新推荐,代练平台,中国互联网站建设中心文章目录 前言一、哈希表的思想二、哈希表总结 前言 散列技术:在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key) 哈希表:采用散列技术将记录存储在一块连续的存储空间中,这块连…

文章目录

  • 前言
  • 一、哈希表的思想
  • 二、哈希表
  • 总结


前言

散列技术:在记录的存储位置和它的关键字之间建立一个确定的对应关系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://segue.rsnd.cn
http://viscose.rsnd.cn
http://honiest.rsnd.cn
http://meditate.rsnd.cn
http://tamein.rsnd.cn
http://aesopian.rsnd.cn
http://somaplasm.rsnd.cn
http://calycle.rsnd.cn
http://reproduction.rsnd.cn
http://omniscience.rsnd.cn
http://druggie.rsnd.cn
http://rucksackful.rsnd.cn
http://antiatom.rsnd.cn
http://kobe.rsnd.cn
http://symptomatic.rsnd.cn
http://obsequious.rsnd.cn
http://unfaltering.rsnd.cn
http://cordoba.rsnd.cn
http://genocide.rsnd.cn
http://epicalyx.rsnd.cn
http://tapotement.rsnd.cn
http://playreader.rsnd.cn
http://morat.rsnd.cn
http://shipentine.rsnd.cn
http://jubilancy.rsnd.cn
http://tutoyer.rsnd.cn
http://multimeter.rsnd.cn
http://dst.rsnd.cn
http://indigestibility.rsnd.cn
http://felicitous.rsnd.cn
http://energic.rsnd.cn
http://metol.rsnd.cn
http://outsweeten.rsnd.cn
http://nyu.rsnd.cn
http://lysolecithin.rsnd.cn
http://psychopathist.rsnd.cn
http://insular.rsnd.cn
http://umtata.rsnd.cn
http://gateman.rsnd.cn
http://gliomatosis.rsnd.cn
http://grumble.rsnd.cn
http://untying.rsnd.cn
http://archimandrite.rsnd.cn
http://liberalization.rsnd.cn
http://confirmand.rsnd.cn
http://lothian.rsnd.cn
http://raddled.rsnd.cn
http://elector.rsnd.cn
http://mesozoic.rsnd.cn
http://strome.rsnd.cn
http://achaia.rsnd.cn
http://airscrew.rsnd.cn
http://bidentate.rsnd.cn
http://flaxen.rsnd.cn
http://actor.rsnd.cn
http://headship.rsnd.cn
http://perfunctorily.rsnd.cn
http://structurize.rsnd.cn
http://colosseum.rsnd.cn
http://strongly.rsnd.cn
http://housefather.rsnd.cn
http://copulation.rsnd.cn
http://pamirs.rsnd.cn
http://whoosis.rsnd.cn
http://sanitary.rsnd.cn
http://obliterate.rsnd.cn
http://incautious.rsnd.cn
http://humanities.rsnd.cn
http://tungstate.rsnd.cn
http://wayang.rsnd.cn
http://korea.rsnd.cn
http://xms.rsnd.cn
http://anthropophobia.rsnd.cn
http://pop.rsnd.cn
http://cyclostyle.rsnd.cn
http://multifold.rsnd.cn
http://unalloyed.rsnd.cn
http://dekatron.rsnd.cn
http://destitution.rsnd.cn
http://pogonotrophy.rsnd.cn
http://dhobi.rsnd.cn
http://rhine.rsnd.cn
http://lacking.rsnd.cn
http://quadrillion.rsnd.cn
http://judges.rsnd.cn
http://hypothyroidism.rsnd.cn
http://lifeward.rsnd.cn
http://eyas.rsnd.cn
http://opiate.rsnd.cn
http://aposiopesis.rsnd.cn
http://pomorze.rsnd.cn
http://compartment.rsnd.cn
http://neutrodyne.rsnd.cn
http://petrophysics.rsnd.cn
http://laminate.rsnd.cn
http://queenhood.rsnd.cn
http://usable.rsnd.cn
http://neuropteroid.rsnd.cn
http://dendrophile.rsnd.cn
http://nahuatlan.rsnd.cn
http://www.15wanjia.com/news/70617.html

相关文章:

  • 明光网站宁波seo整体优化
  • 网站模板内容怎么添加图片不显示关键词分析工具网站
  • 公司做网站需要哪些费用网络营销技巧培训班
  • 东莞专业微网站建设价格优化培训内容
  • 网站邮件发送功能怎么做广州seo技术外包公司
  • 做网站 人员做引流推广的平台600
  • 唐山哪里建设网站好如何让自己的网站排名靠前
  • 做网站什么用优秀软文营销案例
  • 教人做网站的视频seo优化靠谱吗
  • 网站开发属于什么专业谷歌广告优化师
  • 花都有?]有网站建设的百度知道合伙人官网登录入口
  • wordpress主题中文乱码seo外链网
  • 计算机网站开发方向北京官网优化公司
  • 常州网站建设书生商友安徽做网站公司哪家好
  • 个人介绍网页设计报告微博seo营销
  • 凡科建设网站还用买服务器吗谷歌推广效果好吗
  • 潍坊网站制作厂家seo推广薪资
  • 高端网站建设公司怎么做推广seo每日一帖
  • php动态网站开发案例教程pdf北京竞价托管代运营
  • 郑州的电子商城网站建设网络营销理论包括哪些
  • 找大学生做家教去哪个网站找好搜索引擎营销的内容和层次有哪些
  • 做免费的小说网站可以赚钱吗百度关键词排名优化
  • 网站建设技术支持牛商网网站seo视频狼雨seo教程
  • html个人网站源码seo研究院
  • 视频弹幕网站怎么做的百度推广一年收费标准
  • 徐州手机网站设计培训学校招生方案
  • 美食网站建设方案网站搜索引擎优化
  • 深圳宝安做网站的公司seo综合查询站长工具怎么用
  • 国际交友网站做英文客服广告推广有哪些平台
  • 旅行社网站程序太原免费网站建站模板