Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Struktur data PHP: rahsia jadual hash, alat untuk melombong pertanyaan pantas

Struktur data PHP: rahsia jadual hash, alat untuk melombong pertanyaan pantas

WBOY
WBOYasal
2024-06-02 14:56:57480semak imbas

Jadual cincang ialah struktur data yang cekap yang memetakan kunci kepada indeks dalam tatasusunan melalui fungsi cincang, yang membolehkan penyimpanan dan pengambilan data yang pantas. Dalam pertempuran sebenar, ia boleh digunakan untuk mengira bilangan kemunculan sesuatu perkataan dengan cekap: ① Gunakan jadual cincang untuk memetakan setiap perkataan ke pembilang ② Apabila sesuatu perkataan ditemui, semak sama ada kunci itu wujud dalam jadual cincang ③ Jika tidak , tambahkan dan tetapkan kiraan kepada 1 ④ Jika ada, tambahkan 1 pada kiraan.

Struktur data PHP: rahsia jadual hash, alat untuk melombong pertanyaan pantas

Struktur Data PHP: Rahsia Jadual Hash

Pengenalan kepada Jadual Hash

Jadual hash ialah struktur data yang cekap digunakan untuk menyimpan dan mendapatkan data dengan cepat. Ia memetakan kunci kepada nilai dan menggunakan fungsi cincang untuk menukar kunci kepada indeks yang boleh digunakan dalam tatasusunan.

Fungsi Hash

Fungsi Hash ialah formula ajaib yang menukar kunci kepada indeks. Fungsi cincang yang ideal ialah:

  • Seragam: menjana indeks yang berbeza untuk kekunci yang berbeza
  • Pantas: mengira dalam masa yang tetap
  • Bebas perlanggaran: mengelak daripada menjana indeks yang sama untuk berbilang kunci

Contoh Coractical WordPray Katakan kita mempunyai fail teks dan kita perlu mengira bilangan kali setiap perkataan berlaku. Penyelesaian naif ialah menggunakan tatasusunan untuk menyimpan perkataan dan kiraan mereka, tetapi apabila bilangan perkataan bertambah, mencari dan mengemas kini kiraan menjadi kurang cekap.

Menggunakan jadual cincang, kita boleh memetakan setiap perkataan ke kaunter dan menggunakan perkataan itu secara langsung sebagai kunci. Apabila kami menemui perkataan, kami boleh menyemak dengan cepat sama ada kunci itu wujud dalam jadual cincang, dan jika tidak, kami menambahnya dan menetapkan kiraannya kepada 1. Jika ya, kita tambah 1 pada kiraan.

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

Dalam contoh ini,

membolehkan kami mendapatkan semula kiraan perkataan tertentu dengan cepat.

Atas ialah kandungan terperinci Struktur data PHP: rahsia jadual hash, alat untuk melombong pertanyaan pantas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn