Maison >développement back-end >tutoriel php >Structure des données PHP : le secret de la table de hachage, un outil puissant pour miner des requêtes rapides

Structure des données PHP : le secret de la table de hachage, un outil puissant pour miner des requêtes rapides

WBOY
WBOYoriginal
2024-06-02 14:56:57518parcourir

Une table de hachage est une structure de données efficace qui mappe les clés aux index d'un tableau via une fonction de hachage, permettant un stockage et une récupération rapides des données. En combat réel, il peut être utilisé pour compter efficacement le nombre d'occurrences d'un mot : ① Utilisez une table de hachage pour mapper chaque mot à un compteur ; ② Lorsqu'un mot est rencontré, vérifiez si la clé existe dans la table de hachage ; Sinon, ajoutez-le et réglez le compte sur 1 ; ④ Si c'est le cas, ajoutez 1 au compte.

Structure des données PHP : le secret de la table de hachage, un outil puissant pour miner des requêtes rapides

Structure de données PHP : le secret des tables de hachage

Introduction aux tables de hachage

Une table de hachage est une structure de données efficace utilisée pour stocker et récupérer rapidement des données. Il mappe les clés aux valeurs et utilise une fonction de hachage pour convertir les clés en indices pouvant être utilisés dans le tableau.

Fonction Hash

La fonction Hash est la formule magique qui convertit une clé en index. La fonction de hachage idéale est :

  • Uniforme : génère différents index pour différentes clés
  • Rapide : calcule en temps constant
  • Sans collision : évite de générer le même index pour plusieurs clés

Exemple pratique : Compteur de mots

Supposons que nous ayons un fichier texte et que nous devions compter le nombre de fois où chaque mot apparaît. Une solution naïve consisterait à utiliser un tableau pour stocker les mots et leurs décomptes, mais à mesure que le nombre de mots augmente, la recherche et la mise à jour des décomptes deviennent moins efficaces.

À l'aide d'une table de hachage, nous pouvons mapper chaque mot à un compteur et utiliser le mot directement comme clé. Lorsque nous rencontrons un mot, nous pouvons rapidement vérifier si la clé existe dans la table de hachage, et sinon, nous l'ajoutons et mettons son compte à 1. Si tel est le cas, nous ajoutons 1 au décompte.

class WordCounter {
    private $words = [];

    public function countWords($text) {
        $words = explode(' ', $text);
        foreach ($words as $word) {
            if (isset($this->words[$word])) {
                $this->words[$word]++;
            } else {
                $this->words[$word] = 1;
            }
        }
    }

    public function getWordCount($word) {
        return $this->words[$word] ?? 0;
    }
}

Dans cet exemple, $words数组充当哈希表,键是单词,值是计数。函数countWords()高效地计算每个单词的计数,而函数getWordCount() nous permet de récupérer rapidement le décompte d'un mot spécifique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn