老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

JS中如何實現散列表碰撞處理、開鏈法、HashTable散列

這篇文章將為大家詳細講解有關JS中如何實現散列表碰撞處理、開鏈法、HashTable散列,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

我們提供的服務有:成都網站建設、成都網站制作、微信公眾號開發、網站優化、網站認證、天柱ssl等。為千余家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的天柱網站制作公司

具體如下:

/**
 * 散列表碰撞處理、開鏈法、HashTable散列。
 * 將數組里的元素位置,也設置為數組,當兩個數據的散列在同一個位置時,
 * 就可以放在這個位置的二維數組里,解決了散列函數的碰撞處理問題
 */
function HashTable() {
  this.table = new Array(137);
  this.betterHash = betterHash;//散列函數
  this.showDistro = showDistro;//顯示散列表里的數據
  this.buildChains = buildChains;//生成二維數組
  this.put = put;//將數據存儲到散列表
  this.get = get;//從散列表中取出某個數據
}
// put for separate chaining
function put(key, data) {
  var pos = this.betterHash(key);
  var index = 0;
  if (this.table[pos][index] == undefined) {
    this.table[pos][index] = data;
  }else {
    while (this.table[pos][index] != undefined) {
      ++index;
    }
    this.table[pos][index] = data;
  }
}
/*散列函數*/
function betterHash(string) {
  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);
}
function showDistro() {
  var n = 0;
  for (var i = 0; i < this.table.length; ++i) {
    if (this.table[i][n] != undefined) {
      console.log(i + ": " + this.table[i]);
    }
  }
}
function buildChains() {
  for (var i = 0; i < this.table.length; ++i) {
    this.table[i] = new Array();
  }
}
// get for separate chaining
function get(key) {
  var index = 0;
  var pos = this.betterHash(key);
  while ((this.table[pos][index] != undefined)&&(this.table[pos][index] != key)) {
    index += 1;
  }
  if(this.table[pos][index] == key) {
    console.log(key+" 的鍵值為: "+this.table[pos][index]);
    return this.table[pos][index];
  }else{
    console.log("無該鍵值");
    return undefined;
  }
}
/*測試開鏈法*/
var someNames = ["David", "Jennifer", "Donnie", "Raymond",
  "Cynthia", "Mike", "Clayton", "Danny", "Jonathan"];
var hTable = new HashTable();
hTable.buildChains();
for (var i = 0; i < someNames.length; ++i) {
  hTable.put(someNames[i],someNames[i]);
}
hTable.showDistro();
hTable.betterHash("Jennifer");
hTable.get("Jennidfer");
hTable.get("Jennifer");

使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得如下運行結果:

JS中如何實現散列表碰撞處理、開鏈法、HashTable散列

關于“JS中如何實現散列表碰撞處理、開鏈法、HashTable散列”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。


分享題目:JS中如何實現散列表碰撞處理、開鏈法、HashTable散列
鏈接URL:http://www.xueling.net.cn/article/jgpohj.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 欧美成人A片一区二区不卡 www.丁香.com | 亚洲涩导航| 伊人蕉久中文字幕无码专区 | 国产一区二区影院 | 人妻少妇久久中文字幕 | 国产成人av综合 | av一区免费 | 91九色第一页 | 美日韩一区二区三区 | 久草视频免费播放 | 天天做天天爱夜夜爽少妇 | 少妇无码AV无码一区 | 69导航| 日韩欧美一区二区三 | 国产精品福利啪在线观看 | 婷婷成人综合激情在线视频播放 | 800AV凹凸视频免费观看 | 亚洲日韩高清aⅴ在线观看 四区在线观看 | 蜜臀av一二三区 | AV男人的天堂在线观看国产 | 黄色片免费看视频 | 超爱碰在线资源 | 伊人久久大香线蕉综合网 | 黄色片ww| 一级毛片看 | 一区二区亚洲精品国产精华液 | 99热在线观看免费 | 欧美日韩中文视频 | 懂色av一区二区三区免费 | 欧美人与禽ZOZ0善交 | 精品中文字幕一区二区 | 日韩成人av影院 | 亚洲欧美成aⅴ人在线观看 这里只有精品在线 | 亚洲午夜精品久久 | 免费a级网站 | 国产极品粉嫩福利在线观看 | 2022国产成人精品视频人 | 诡异时代全球动漫免费观看 | 国产精品最新网址 | 逼逼久久 | 久久无码色综合中文字幕 |