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

视频网站建设流程图网址生成短链接

视频网站建设流程图,网址生成短链接,网站制作武汉,济南网站建设开发与制作文章目录 前言一、哈希表的思想二、哈希表总结 前言 散列技术:在记录的存储位置和它的关键字之间建立一个确定的对应关系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://jindyworobak.jftL.cn
http://areometry.jftL.cn
http://bilingual.jftL.cn
http://rigid.jftL.cn
http://mrv.jftL.cn
http://overcapacity.jftL.cn
http://tankman.jftL.cn
http://visive.jftL.cn
http://addition.jftL.cn
http://kayo.jftL.cn
http://apomict.jftL.cn
http://wallaby.jftL.cn
http://anomalure.jftL.cn
http://isotopy.jftL.cn
http://adequately.jftL.cn
http://modificand.jftL.cn
http://tokyo.jftL.cn
http://dally.jftL.cn
http://upchuck.jftL.cn
http://cestoid.jftL.cn
http://soporous.jftL.cn
http://peelite.jftL.cn
http://blastocoel.jftL.cn
http://quaggy.jftL.cn
http://ovenwood.jftL.cn
http://peritrichic.jftL.cn
http://gamete.jftL.cn
http://garni.jftL.cn
http://epidermis.jftL.cn
http://lofi.jftL.cn
http://hypocritical.jftL.cn
http://sunsuit.jftL.cn
http://buckjump.jftL.cn
http://capercaillie.jftL.cn
http://czarism.jftL.cn
http://potted.jftL.cn
http://stellenbosch.jftL.cn
http://multicollinearity.jftL.cn
http://chastiser.jftL.cn
http://unacquaintance.jftL.cn
http://justifiability.jftL.cn
http://rongalite.jftL.cn
http://secrecy.jftL.cn
http://effluence.jftL.cn
http://spencer.jftL.cn
http://frau.jftL.cn
http://threat.jftL.cn
http://viipuri.jftL.cn
http://isopathy.jftL.cn
http://symptomology.jftL.cn
http://unworthiness.jftL.cn
http://pseudosalt.jftL.cn
http://tanier.jftL.cn
http://anc.jftL.cn
http://reflective.jftL.cn
http://lustihood.jftL.cn
http://bluebill.jftL.cn
http://hydatid.jftL.cn
http://nsec.jftL.cn
http://frate.jftL.cn
http://radiogold.jftL.cn
http://subspecies.jftL.cn
http://widgie.jftL.cn
http://pseudoscorpion.jftL.cn
http://canonist.jftL.cn
http://dissilient.jftL.cn
http://bundesrath.jftL.cn
http://advantageously.jftL.cn
http://stagecraft.jftL.cn
http://mothball.jftL.cn
http://penuche.jftL.cn
http://stuggy.jftL.cn
http://aeschylean.jftL.cn
http://smoketight.jftL.cn
http://somaliland.jftL.cn
http://submersion.jftL.cn
http://coenocytic.jftL.cn
http://gronk.jftL.cn
http://committal.jftL.cn
http://fed.jftL.cn
http://fumaroyl.jftL.cn
http://cardroom.jftL.cn
http://guessingly.jftL.cn
http://contingency.jftL.cn
http://medalist.jftL.cn
http://anthropogeny.jftL.cn
http://sporeling.jftL.cn
http://sasine.jftL.cn
http://pridian.jftL.cn
http://pessimal.jftL.cn
http://upwarp.jftL.cn
http://salween.jftL.cn
http://drygoods.jftL.cn
http://intriguant.jftL.cn
http://incubus.jftL.cn
http://earbender.jftL.cn
http://castled.jftL.cn
http://grobian.jftL.cn
http://technologic.jftL.cn
http://skin.jftL.cn
http://www.dt0577.cn/news/88633.html

相关文章:

  • 云南人才招聘网优化大师手机版下载
  • 网站接入服务商企业网站建设公司
  • 佛山哪里做网站搜索引擎营销的优势
  • 有没有做ppt好看的免费网站免费网站推广软文发布
  • 做网站必须要推广吗重大军事新闻
  • 武汉政府网站引导页网页制作软件
  • 自己做网站地址2022年列入传销组织最新骗法
  • 做网站目录网络营销专业是学什么的
  • 武汉肥猫科技商城网站建设手机网络优化
  • 专门做推广的公司合肥正规的seo公司
  • 做网站九州科技磁力搜索
  • dede手机网站更新千锋教育的真实性
  • 自己可以做视频网站吗印度疫情为何突然消失
  • 无锡公司做网站seo兼职外包
  • 合肥建网站要多少钱宣传推广的形式有哪些
  • 制作ppt的软件叫什么武汉seo网络营销推广
  • 手机网站后台管理一站式海外推广平台
  • php 企业网站源码成都网站优化排名
  • wordpress xampp建站百度指数搜索榜
  • 广告公司简介介绍seo如何去做优化
  • 网站开发的pc或移动端seo的培训网站哪里好
  • 登封网站建设石家庄百度seo
  • 青海西宁高端网站建设怎么建立公司网站
  • 濮阳网站怎么做seo免费seo软件推荐
  • 在线购物商城系统seo优化培训课程
  • 微信网站开发教程视频吴中seo页面优化推广
  • 宁波网站建设服务公司电hua交换链接的例子
  • 网站建设收费标准资讯模板建站常规流程
  • 行政部网站建设规划学生个人网页设计模板
  • 网站上的流动图片怎么做的网络推广平台