Dieser Artikel vermittelt Ihnen relevantes Wissen über Javascript. Er stellt hauptsächlich die damit verbundenen Probleme zur Implementierung von Hash-Tabellen vor. Die gesamte Struktur des Arrays, in das die endgültigen Daten eingefügt werden, und das Ergebnis ist die Hash-Tabelle. hoffe es hilft allen.
Verwandte Empfehlungen: Javascript-Lerntutorial
);
Wie in der Abbildung unten gezeigt, werden wir jede Nummer Die Restoperation wird fürZusammenfassung: Die Möglichkeit, Konflikte mit der Kettenadressmethode zu lösen, besteht darin, dass jede Array-Einheit nicht mehr
einzelne Daten speichert, sondern eine
Array oder verknüpfte Liste, die beiden Datenstrukturen sind bei der Suche gleichermaßen effizient (da die Kette im Allgemeinen nicht zu viele Elemente enthält). Option 2: Methode der offenen Adresse; Die Hauptarbeitsmethode der Methode der offenen Adresse besteht darin, leere Zellen zu finden
, umEntsprechend den verschiedenen Methoden zur Erkennung der Position leerer Zellen kann sie in drei Methoden unterteilt werden: Lineare Erkennung
Eine leistungsstarke Hash-Funktion sollte die folgenden zwei Vorteile haben:
Wann Um den Wert eines Polynoms zu ermitteln, berechnen Sie zunächst den Wert des linearen Polynoms in der innersten Klammer und berechnen Sie dann den Wert des linearen Polynoms Schicht für Schicht von innen nach außen. Dieser Algorithmus wandelt den Wert des Polynoms f(x) n-Grades in den Wert von Polynomen n-Grads um.
Vor der Transformation:Nach der Transformation:
Wenn großes O zur Darstellung der Zeitkomplexität verwendet wird, wird es direkt von
O(N2)Um sicherzustellen, dass die Daten gleichmäßig in der Hash-Tabelle verteilt sind, wenn wir Konstanten verwenden müssen, versuchen Sie,
PrimzahlenHashMap in Java verwendet die Kettenadressmethode und die für das Hashing verwendete Formel lautet: index = HashCode (Schlüssel) & (Länge-1) Das heißt, die Daten werden für - und -Operationen in Binärdateien konvertiert. und es handelt sich nicht um eine Restoperation. Auf diese Weise verarbeitet der Computer direkt Binärdaten, was effizienter ist. Bei der Ausführung von
- und-Operationen, die als Big Data bezeichnet werden, treten jedoch Probleme bei JavaScript auf, sodass die Restoperation weiterhin verwendet wird, wenn JavaScript zum Implementieren von Hashing verwendet wird. function HashTable() {
// 存放相关的元素
this.storage = [];
// 存了多少数据
this.count = 0;
// 用于标记数组中一共存放了多少个元素
this.limit = 7;
/*
设计哈希函数
①将字符串转成比较大的数字
②将大的数字hashCode压缩到数组范围之内
*/
HashTable.prototype.hashFunction = function (str, size) {
var hashCode = 0;
//秦九韶算法(霍纳算法)
// 哈希表的长度、N次幂的底数等尽量选取质数
for (var i = 0; i this.limit * 0.75) {
var newLimit = this.limit * 2;
var prime = this.getPrime(newLimit);
this.resize(prime);
}
};
// 获取
HashTable.prototype.get = function (key) {
var index = this.hashFunction(key, this.limit);
var bucket = this.storage[index];
if (bucket == null) return null;
for (var i = 0; i 7 && this.count 0 ? false : true;
};
// size
HashTable.prototype.size = function () {
return this.count;
};
// toString
HashTable.prototype.toString = function () {
var str = '';
for (var i = 0; i
Verwandte Empfehlungen: Javascript-Lerntutorial
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Implementierung von Hash-Tabellen durch JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!