联系hashgameCONTACT hashgame
地址:广东省广州市
手机:13988889999
电话:020-88889999
邮箱:admin@qq.com
查看更多
Rhashgamehashgame
你的位置: 首页 > hashgame

HASH GAME - Online Skill Game ET 300【数据结构重温】Linux内核中的hash和buck

发布时间:2025-09-18 17:52:58  点击量:

  HASH GAME - Online Skill Game GET 300

HASH GAME - Online Skill Game GET 300【数据结构重温】Linux内核中的hash和buck

  【数据结构重温】Linux 内核中的hash 和 buck 【数据结构重温】Linux 内核中的 hash 和 bucket 哈希表(Hashtable)又称为散置Hashtable 是会根据索引键的哈希程序代码组织成的索引键(Key)和值(Value)配对的集合。Hashtable 对象是由包含集合中元素的哈希桶(Bucket)所组成的。而 Bucket 是 Hashtable 内元素的虚拟子群组可以让大部分集合中的搜寻和获取工作更容易、更快速。哈希函数(Hash Function)为根据索引键来返回数值哈希程序代码的算法。索引键(Key)是被存储对象的某些属性值(Value)。当对象加入至 Hashtable 时它存储在与对象哈希程序...

  【数据结构重温】Linux 内核中的hash 和 buck 【数据结构重温】Linux 内核中的 hash 和 bucket 哈希表(Hashtable)又称为散置Hashtable 是会根据索引键的哈希程序代码组织成的索引键(Key)和值(Value)配对的集合。Hashtable 对象是由包含集合中元素的哈希桶(Bucket)所组成的。而 Bucket 是 Hashtable 内元素的虚拟子群组可以让大部分集合中的搜寻和获取工作更容易、更快速。哈希函数(Hash Function)为根据索引键来返回数值哈希程序代码的算法。索引键(Key)是被存储对象的某些属性值(Value)。当对象加入至 Hashtable 时它存储在与对象哈希程序代码相符的哈希程序代码相关的 Bucket 中。当在 Hashtable 内搜寻值时哈希程序代码会为该值产生并且会搜寻与该哈希程序代码相关的Bucket。例如student 和 teacher 会放在不同的 Bucket 中而 dog 和 god 会放在相同的 Bucket 中。所以当索引键是唯一从 Hashtable 获取元素的性能时表现会较好。Hash 的四大优点如下所示。事先不需要排序。搜寻速度与数据多少无关。数字签名的密码技术保密性(Security)高。可做数据压缩(Data Compression)以节省空间。读过 Linux 内核源码的人可能都会发现其中并没有太多复杂的数据结构作为基础数据结构的双向链表(list)和基于 list 实现的 hash 表占据了绝大部分数据结构。内核为什么会大量使用这两种数据结构呢?围绕这个问题(主要是 hash 表)我将以自己的理解揣摩一下其意图。首先这两种数据结构都十分简单简单包括理解起来简单和使用起来简单两方面内容。这也意味着代码的可读性和可维护性都比其他复杂的数据结构要好出现bug 的风险也较低。从哲学上来讲这也符合 K.I.S.S.条款。其次内核是一个比较讲究性能的软件为了程序设计和维护的简单性而失掉性能这究竟是不是算得不偿失呢?我们是不是应该将天平更加偏向于性能?已经记不起是在哪里听说过很多商业的路由软件都是基于二叉树的数据结构来存储路由项以求得其路由查找的时间复杂度为 log(n)并且他批评 Linux 的路由项组织为hash 表致使性能不佳不适合商业。确实有一定道理可仔细分析hash 表的性能真的比二叉树差么?二叉树的插入和删除某一项的时间复杂度都为log(n)hash 表插入和删除的时间复杂度最好为 O(1)最差为 O(n)如果选

【返回列表页】

顶部

地址:广东省广州市  电话:020-88889999 手机:13988889999
Copyright © 2018-2025 哈希游戏(hash game)官方网站 版权所有 非商用版本 ICP备案编: