再谈哈希函数与线性探测再散列
来源:互联网 发布:简述域名的含义 编辑:程序博客网 时间:2024/05/17 05:51
在上一篇文章的叙述中,作者用极其鄙视的态度阐述了线性探测再散列的思想,具体内容如下面的链接,在接下来的叙述中,鄙人将用一段低端的代码来具体的鄙视一下那些没事拿线性探测再散列来装B的人。
传送门:浅谈哈希函数与线性探测再散列
废话不多说,我们先来看下这个低端的代码吧~
//CHashTable.h By tinyelegant
class CHashTable{public:CHashTable(void);CHashTable(int size);~CHashTable(void);private:int m_iSize;int *m_pList;public:void CreatTable(int size);int HashKey(int element);void Hash_LinkAddress(int *parray);void Hash_OpenAddress(int *parray);};
//CHashTable.cpp部分代码:线性探测再散列算法细节实现 By tinyelegant
void CHashTable::Hash_OpenAddress(int *parray){int *status=new int[m_iSize];int *copyarray=new int[m_iSize];for (int i=0;i<m_iSize;i++){*(status+i)=0;*(copyarray+i)=*(parray+i);}bool flag=true;int j=1;for (int i=0;i<m_iSize;i++){if (status[HashKey(copyarray[i])]==0){status[HashKey(copyarray[i])]=1;parray[HashKey(copyarray[i])]=copyarray[i];}else {while(flag){if (status[(HashKey(copyarray[i])+j)%m_iSize]==0){parray[(HashKey(copyarray[i])+j)%m_iSize]=copyarray[i];status[(HashKey(copyarray[i])+j)%m_iSize]=1;flag=false;j=1;}else{flag=true;j++;}}}}delete []status;delete []copyarray;}
好了,相信大家看了上面的代码之后都崩溃了,这无语的格式和混乱的逻辑已经让我们领悟到了这种每天把线性探测再散列挂在嘴边的精髓~
当然,本着不打击本代码的作者的精神,鄙人截取了该程序中格式最清晰,内容最明了的部分。说到这,我们还是不要专门提那位代码的作者了,不过这样貌似不太厚道,所以还是有什么想说的就直接去喷他吧~
下附赠传送门:(赶紧去喷他吧)
点我来喷他
诚然,我们要做有素质的人,不能喷了他连他是谁都不知道,所以,请牢牢的记住(tinyelegant)这个ID,当你写出类似的代码的时候,不要忘了你曾经鄙视过一个类似的人,所以,你需要反省自己的代码了~
写到了这个地方突然发现感觉上似乎是跑题了的样子,但是就这样吧~
注:恶搞文章请“勿”对号入座
- 再谈哈希函数与线性探测再散列
- 浅谈哈希函数与线性探测再散列
- 哈希表线性探测再散列
- 【哈希表】线性探测再散列的相关知识与计算
- 哈希表(线性探测再散列)
- 实验 哈希表线性探测再散列
- 线性探测法的查找函数
- 线性探测法的查找函数
- 线性探测法的查找函数
- java数据结构与算法-线性探测哈希表
- 线性探测再散列解决冲突的哈希表
- POJ 1186 hash 线性探测再散列
- 哈希散列冲突线性探测再散列算法
- 线性探测再散列和平方探测再散列(二次探测再散列)算法
- 哈希表线性探测&二次探测
- 详细图解什么叫平方探查法即二次探测再散列和线性探测再散列(数据结构 哈希函数 哈希冲突)
- 6-4 线性探测法的查找函数
- 6-4 线性探测法的查找函数(哈希表)
- VirtualBox 共享文件夹设置(windows7主机,linux客户机)
- HTML5 游戏示例,只贴图,贴代码,不说话。
- 孙鑫VC学习笔记:第二讲 掌握C++
- setTimeout和setInterval的区别
- ArcSDE数据被锁定后的解锁方法
- 再谈哈希函数与线性探测再散列
- linux下spi的驱动开发实例M25P10
- 代码格式规范工具 astyle 或 indent
- linux fork 精解
- SEO优化中网站主页百度快照消失的最佳解决方法
- 在android c代码中加log
- 代码静态分析工具 PC-Lint
- spring的事务的传播方式
- 跨域访问实现依据