PHP-Datenstruktur: Implementierungsprinzip der Hash-Tabelle, entdecken Sie das Geheimnis der schnellen Datensuche

PHPz
Freigeben: 2024-06-03 18:32:01
Original
793 Leute haben es durchsucht

Eine Hash-Tabelle ist eine effiziente Datenstruktur, die schnelle Suchvorgänge ermöglicht, indem Daten in Arrays fester Größe („Buckets“) zugeordnet werden, wobei jeder Bucket Daten mit demselben Schlüssel enthält. Hash-Tabellen in PHP verwenden eine Hash-Funktion, um Daten beliebiger Größe in eine Ganzzahl fester Länge umzuwandeln, die zur Berechnung der Buckets der Daten in der Hash-Tabelle verwendet wird.

PHP-Datenstruktur: Implementierungsprinzip der Hash-Tabelle, entdecken Sie das Geheimnis der schnellen Datensuche

PHP-Datenstruktur: Implementierungsprinzip der Hash-Tabelle, entdecken Sie das Geheimnis der schnellen Datensuche

Einführung

Hash-Tabelle (Hash-Tabelle) ist eine effiziente Datenstruktur für die schnelle Datensuche. Es ermöglicht schnelle Suchvorgänge, indem es Daten in einem Array fester Größe, einem „Bucket“, abbildet. Jeder Bucket enthält Daten mit demselben Schlüssel.

Implementierungsprinzip

Das Implementierungsprinzip der Hash-Tabelle in PHP basiert auf der Hash-Funktion. Eine Hash-Funktion wandelt Daten beliebiger Größe in eine Ganzzahl fester Länge um. Diese Ganzzahl wird verwendet, um den Bucket zu berechnen, in den die Daten in die Hash-Tabelle eingefügt werden.

Code-Implementierung: Benutzerdefinierte Hash-Tabelle

Das Folgende ist ein Beispielcode zum Implementieren einer Hash-Tabelle in PHP:

class HashTable
{
    private $buckets = [];
    private $size = 0;

    public function __construct($size)
    {
        $this->size = $size;
    }

    public function hash(string $key): int
    {
        return crc32($key) % $this->size;
    }

    public function set(string $key, $value): void
    {
        $index = $this->hash($key);
        $this->buckets[$index][$key] = $value;
    }

    public function get(string $key): mixed
    {
        $index = $this->hash($key);
        if (isset($this->buckets[$index][$key])) {
            return $this->buckets[$index][$key];
        } else {
            return null;
        }
    }
}
Nach dem Login kopieren

Praktischer Fall: Gruppieren von Mitarbeitern nach Alter

Angenommen, wir haben ein Array, das das Alter der Mitarbeiter enthält und wir wollen Konzernmitarbeiter nach Alter. Mithilfe einer Hash-Tabelle können wir schnell Mitarbeiter gleichen Alters finden.

$ages = [25, 30, 28, 35, 32, 25, 30];
$hashTable = new HashTable(count($ages));

foreach ($ages as $age) {
    $hashTable->set($age, []);
}

foreach ($ages as $age) {
    $hashTable->get($age)[] = $age;
}

var_dump($hashTable->buckets);
Nach dem Login kopieren

Ausgabeergebnis:

array(
    25 => array(25, 25),
    30 => array(30, 30),
    28 => array(28),
    35 => array(35),
    32 => array(32)
)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPHP-Datenstruktur: Implementierungsprinzip der Hash-Tabelle, entdecken Sie das Geheimnis der schnellen Datensuche. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!