Hash of js
2018-06-24 00:45:02来源:未知 阅读 ()
function HashTable() { this.table = new Array(137); }; HashTable.prototype = { constructor: HashTable, simpleHash: function(data) { var total = 0; for (var i = 0; i < data.length; ++i) { total += data.charCodeAt(i); } return total % this.table.length; }, showDistro: function () { var n = 0; for (var i = 0; i < this.table.length; ++i) { if (this.table[i][0] != undefined) { console.log(i + ": " + this.table[i].join('|--|')); } } }, put: function (key, data) { var pos = this.betterHash(key); var index = 0; if (this.table[pos][index] == undefined) { this.table[pos][index] = [key, data]; ++index; } else { while (this.table[pos][index] != undefined) { ++index; } this.table[pos][index] = [key, data]; } }, get: function(key){ var index = 0; var pos = this.betterHash(key); if (this.table[pos][index][0] == key) { return this.table[pos][index]; } else { while (this.table[pos][index][0] != key) { ++index; } return this.table[pos][index]; } return undefined; }, betterHash: function (string, arr) { const H = 37; var total = 0; for (var i = 0; i < string.length; ++i) { total += H * total + string.charCodeAt(i); } total = total % this.table.length; if (total < 0) { total += this.table.length-1; } return parseInt(total); }, buildChains: function () { //开链法 for (var i = 0; i < this.table.length; ++i) { this.table[i] = new Array(); } } }; //线性探测法 var values = []; function put(key, data) { var pos = this.betterHash(key); if (this.table[pos] == undefined) { this.table[pos] = key; this.values[pos] = data; } else { while (this.table[pos] != undefined) { pos++; } this.table[pos] = key; this.values[pos] = data; } }; function get(key) { var hash = -1; hash = this.betterHash(key); if (hash > -1) { for (var i = hash; this.table[i] != undefined; i++) { if (this.table[i] == key) { return this.values[i]; } } } return undefined; }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Datatables跳转到指定页
下一篇:定时器 + 简单的动画效果
- 背景线条实现 2019-08-14
- 手机号码正则表达式 2019-08-14
- 关于函数:function 的学习(第一弹) 2019-08-14
- 数组去重方法 2019-05-13
- JS 02 函数 2019-05-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash