Was ist ein Hacktisch?

In der Informatik ist ein Hacktisch eine Datenstruktur für die Speicherung von Daten, die Werten, genannt besteht die Schlüssel, dessen aus Liste zusammengepaßt mit einer entsprechenden Liste von Werten erhalten, benannt eine Reihe. Z.B. konnte ein Handelsname zusammengepaßt mit seiner Adresse erhalten. Gewöhnlich hat jeder Wert in der Reihe eine Positionszahl, die als ein Durcheinander gekennzeichnet ist. Die Durcheinanderfunktion ist im Allgemeinen ein Satz von Anweisungen oder von Algorithmus, der jeden Schlüsselwert zu einem Durcheinander - Verbindung des Handelsnamens an seine Adresse, seine Telefonnummer und seine Geschäftskategorie, zum Beispiel abbildet. Der Zweck der Durcheinanderfunktion ist, jeden Schlüssel einem einzigartigen entsprechenden Wert in der Reihe zuzuweisen; dieses gekennzeichnet allgemein als Hashing. Durcheinanderfunktionen müssen richtig formatiert werden, damit ein Hacktisch richtig arbeitet.

Die Leistung eines Hacktischs auf einem Satz Daten ist nach der Leistungsfähigkeit seiner Durcheinanderfunktion abhängig. Eine gute Durcheinanderfunktion stellt gewöhnlich für ein konstantes Nachschlagen von Schlüsseln und eine gleichmäßige Verteilung der Kartenaufnahmen in der entsprechenden Reihe zur Verfügung. Ein Durcheinanderzusammenstoß tritt auf, wenn zwei Schlüssel dem gleichen entsprechenden Wert zugewiesen werden. Wenn ein Durcheinanderzusammenstoß auftritt, wird die Durcheinanderfunktion normalerweise wieder durchgeführt, bis ein einzigartiger entsprechender Wert gefunden ist; dieses ergibt allgemein längere Hashingzeiten. Obgleich die Zahl Schlüsseln in einem Hacktisch normalerweise örtlich festgelegt ist, manchmal konnte es doppelte Schlüssel geben. Allerdings hat ein gut entworfener Hacktisch wirkungsvolle Durcheinanderfunktionen, die jeden Schlüssel zu einem einzigartigen entsprechenden Wert in der Reihe abbilden.

Manchmal können wirkungslose Durcheinanderfunktionen in einem Hacktisch einen Block der Kartenaufnahmen auch produzieren. Wenn eine Durcheinanderfunktion einen Block der Kartenaufnahmen für vorhandene Schlüssel herstellt, kann diese die Zeitmenge erhöhen, das sie zum Nachschlagen die entsprechenden Werte nimmt. Dieses kann den Hashing für zukünftige Schlüssel verlangsamen, da die meisten Durcheinanderfunktionen im Allgemeinen nach der folgenden vorhandenen Position in der Reihe suchen. Wenn ein großer Block von Werten bereits zugewiesen worden ist, würde er gewöhnlich viel länger dauern, um nach einem freien Wert für einen neuen Schlüssel zu suchen.

Der Belastungsfaktor ist ein anderes Konzept, das auf der Leistungsfähigkeit einer Durcheinanderfunktion bezogen wird; der Belastungsfaktor ist die Menge der bereits vorhandenen hashings in Beziehung zu der Gesamtgröße der entsprechenden Reihe in einem Hacktisch. Er wird normalerweise definiert, indem man die Zahl bereits zugewiesenen Schlüsseln durch die Größe der entsprechenden Reihe teilt. Da der Belastungsfaktor sich erhöht, behält eine gute Durcheinanderfunktion normalerweise noch eine konstante Anzahl von Zusammenstößen und Blöcken bis zu einem bestimmten Punkt bei. Oftmals kann diese Schwelle benutzt werden, um festzustellen, wie leistungsfähig eine Durcheinanderfunktion mit einer gegebenen Anzahl von Schlüsseln ist und wann eine neue Durcheinanderfunktion erforderlich sein kann.

Viele Informatikforscher haben sich bemühten, die vollkommene Durcheinanderfunktion zu produzieren - eine, die keine Zusammenstöße oder Blöcke produziert, die einen zunehmenbelastungsfaktor gegeben werden. In der Theorie ist der Schlüssel zum Produzieren eines vollkommenen Hacktischs, eine vollkommene Durcheinanderfunktion zu produzieren. Im Allgemeinen glauben Forscher, dass eine vollkommene Durcheinanderfunktion konstante Leistung - die Zahl Zusammenstößen und Blöcken - mit einem zunehmenbelastungsfaktor haben sollte. In den Falldrehbüchern würde eine vollkommene Durcheinanderfunktion noch konstanten Hashing zulassen, ohne eine Schwelle zu erreichen.