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

shopify做国内网站windows装wordpress

shopify做国内网站,windows装wordpress,保定做网站电话,wordpress前台发文章7.4散列表的查找 7.4.1散列表的基本概念 基本思想:记录的存储位置域关键字之间存在对应关系 ​ 对应关系——hash函数 ​ Loc(i) H(keyi) 如何查找: 根据散列函数 H(key) k 查找key9,则访…

7.4散列表的查找

7.4.1散列表的基本概念

基本思想:记录的存储位置域关键字之间存在对应关系

​ 对应关系——hash函数

​ Loc(i)= H(keyi)

如何查找

什么是散列表 - 知乎

根据散列函数 H(key) = k

查找key=9,则访问H(4)= 18号地址,若内容为18则成功;

若查不到,则返回一个特殊值,如空指针或空记录。

优点:查找效率高

缺点:空间效率低

7.4.2散列表的若干术语

散列方法(杂凑法)

​ 选取某个函数,依该函数按关键字计算元素的存储位置,并按此存放;

​ 查找时,由同一个函数对给定值K计算地址,将k与地址单元中元素关键码进行比,确定查找是否成功。

散列函数(杂凑函数):散列方法中使用的转换函数

散列表(杂凑表):按上述思想构造的表 散列函数:H(key)=k

什么是散列表 - 知乎

冲突:不同的关键码映射到同一个散列地址 key1≠key2,但是H(key1)=H(key2)

例如:有6个元素的关键码分别为:(25,21,39,9,23,11)。

  • 选取关键码与元素位置间的函数为H(k)=k mod 7,
  • 地址编号从0-6

7.4.3散列函数的构造方法

散列存储:选取某个函数,依该函数按关键字计算元素的存储位置

Loc(i)=H(keyi)

在散列查找方法中,冲突是不可能避免的,只能尽可能减少。

使用散列表要解决好两个问题

  1. 构造好的散列函数

    a)所选函数尽可能简单,以便提高转换速度;

    b)所选函数对关键码计算出的地址,应在散列地址集中致均匀分布,以减少空间浪费。

  2. 制定一个好的解决冲突的方案

    查找时,如果从散列函数计算出的地址中查不到关键码,则应当依据解决冲突的规则,有规律地查询其他相关单元。

构造散列函数考虑的因素

  1. 执行速度(即计算散列函数所需要的时间);
  2. 关键字的长度;
  3. 散列表的长度;
  4. 关键字的分布情况;
  5. 查找频率。

根据元素集合的特性构造

  • 要求一:n 个数据源仅占用 n 个地址,虽然散列查找是以空间换时间,但仍希望散列的地址空间尽量小
  • 要求二:无论用什么方法存储,目的都是尽量均匀地存放元素,以避免冲突。
1、直接定址法

Hash(key)= a·key + b (a、b为常数)

优点:以关键码key的某个线性函数值为散列地址,不会产生冲突。

缺点:要占用连续地址空间,空间效率低。

教你几招HASH表查找的方法 - 知乎

2、除留余数法

Hash(key)= key mod p(p是一个整数)

关键:如何选取合适的p?

技巧:设表长为m,取p≤m且为质数

哈希 ---《哈希函数》------除数的选取为什么是质数?、《哈希冲突》------解决方法、《闭散列》、《开散列》_除留余数法为什么用质数 ...

7.4.4处理冲突的方法

1、开放地址法(开地址法)

基本思想:有冲突时就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将数据元素存入。

例如:除留余数法 Hi=(Hash(key)+di) mod m di为增量序列

常用方法:

​ 线性探测法 di为1,2,…m-1线性序列 一旦冲突,就找下一个地址,直到找到空地址存入

【数据结构】哈希表(线性探测法)_LI大大的博客-CSDN博客_线性探测法

​ 二次探测法 di为12,-12,22,-22,…,q2二次序列

详细图解什么叫平方探查法即二次探测再散列和线性探测再散列(数据结构 哈希函数 哈希冲突)_请叫我大师兄_的博客-CSDN博客_二次探测再散列是 ...

​ 伪随机探测法 di为伪随机数序列

2、链地址法(拉链法)

基本思想:相同散列地址的记录链成一单链表

m个散列地址就设m个单链表,然后用一个数组将m个单链表的表头指针存储起来,形成一个动态的结构。

【数据结构和算法】散列表的查找算法(开放地址法,链地址法)-阿里云开发者社区

链地址法建立散列表步骤

  • Step1:取数据元素的关键字key,计算其散列函数值(地址)。若该地址对应的链表为空,则将该元素插入此链表;否则执行Step2解决冲突。
  • Step2:根据选择的冲突处理方法,计算关键字key的下一个存储地址。若该地址对应的链表不为空,则利用链表的前插法或后插法将该元素插入此链表。

链地址法的优点

  • 非同义词不会冲突,无聚集现象
  • 链表上结点空间动态申请,更适合于表长不确定的情况

7.4.5散列表的查找

给定值查找值k,查找过程:

《算法与数据结构基础》学习笔记07——查找算法_线性表、树表、散列表的查找 - 知乎

【数据结构和算法】散列表的查找算法(开放地址法,链地址法) - 程序员大本营

http://www.yayakq.cn/news/416372/

相关文章:

  • 长春网站长春网络推广建设注册科技有限公司可以做网站吗
  • 河南省建设厅网网站首页wordpress主题免费和付费
  • 南山网站建设 信科网络wordpress设置新页面
  • 封丘县建站塔山双喜室内设计个人工作室
  • 文化网站建设福州精美个人网站建设公司
  • 大潮建设集团有限公司 网站如何建设 linux 网站
  • 坑人网站怎么做公司名字logo免费设计
  • 邢台学校网站建设报价做网站空间和服务器的
  • 网站建设运营与维护标准广东省网站建设网站
  • 视频直播网站建设费用wordpress postmeta
  • 做教育网站网站推广见效快的方法
  • 做混剪素材下载网站长春百度网站优化
  • 给彩票网站做排名违法吗网站建设方案选公司
  • 珠海网站建设zhkmkj校园二手书交易网站开发
  • 做包装设计的网站有哪些寿光建设银行光明路网站
  • 外贸企业商城网站建设wordpress取消置顶
  • 简创网站建设费用为企业做一件小事
  • 网站快速优化排名网络维护电话
  • 2017自己做网站的趋势湛江电气建站软件
  • 桂平网页设计杭州seo的优化
  • 可以绑定域名的免费网站动物园网站建设的可行性分析
  • 搭建网站需要钱吗亚马逊跨境电商官网
  • 网页设计与制作实用教程(第3版)肇庆seo外包
  • wordpress全屏广告插件整站优化
  • php和网站开发推广营销平台排名
  • 郴州网站优化公司网站建设公司织梦模板
  • 网站建设学习心得如何自创软件
  • 做二手房怎找房源网站网站seo批量查询工具
  • 做电影网站免责声明有用吗好品质高端网站设计厂家
  • 静态网站开发环境wordpress单页瀑布流