Heim  >  Artikel  >  Backend-Entwicklung  >  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

PHPz
PHPzOriginal
2024-06-03 18:32:01786Durchsuche

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;
        }
    }
}

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);

Ausgabeergebnis:

array(
    25 => array(25, 25),
    30 => array(30, 30),
    28 => array(28),
    35 => array(35),
    32 => array(32)
)

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!

Stellungnahme:
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