Jadual Kandungan
PHP实现哈希表
Rumah pembangunan bahagian belakang tutorial php PHP实现哈希表_PHP教程

PHP实现哈希表_PHP教程

Jul 13, 2016 am 09:51 AM
Hash

PHP实现哈希表

//一个简单的哈希表实现。。。。


<?php

class hashTable
{
    private $collection;
    private $size = 100;

    //初始化哈希表的大小
    public function __construct($size=&#39;&#39;)
    {
        $bucketsSize = is_int($size)?$size:$this->size;
        $this->collection = new SplFixedArray($bucketsSize);
    }

    //生成散列值,作为存储数据的位置
    private function _hashAlgorithm($key)
    {
        $length = strlen($key);
        $hashValue = 0;
        for($i=0; $i<$length; $i++) {
            $hashValue += ord($key[$i]);
        }
        return ($hashValue%($this->size));
    }

    //在相应的位置存储对应的值
    public function set($key, $val)
    {
        $index = $this->_hashAlgorithm($key);
        $this->collection[$index] = $val;
    }

    //根据键生成散列值,进而找到对应的值
    public function get($key)
    {
        $index = $this->_hashAlgorithm($key);
        return $this->collection[$index];
    }

    //删除某个值,成功返回1,失败返回0
    public function del($key)
    {
        $index = $this->_hashAlgorithm($key);
        if(isset($this->collection[$index])) {
            unset($this->collection[$index]);
            return 1;
        } else {
            return 0;
        }
    }

    //判断某个值是否存在,存在返回1, 不存在返回0
    public function exist($key)
    {
        $index = $this->_hashAlgorithm($key);
        if($this->collection[$index]){
            return 1;
        } else {
            return 0;
        }
    }

    //返回key的个数
    public function size()
    {
        $size = 0;
        $length = count($this->collection);
        for($i=0; $i<$length; $i++) {
            if($this->collection[$i]) {
                $size++;
            }
        }
        return $size;
    }

    //返回value的序列
    public function val()
    {
        $size = 0;
        $length = count($this->collection);
        for($i=0; $i<$length; $i++) {
            if($this->collection[$i]) {
                echo $this->collection[$i]."<br />";
            }
        }
    }

    //排序输出
    public function sort($type=1)
    {
        $length = count($this->collection);
        $temp = array();
        for($i=0; $i<$length; $i++) {
            if($this->collection[$i]) {
                $temp[] = $this->collection[$i];
            }
        }

        switch ($type) {
            case 1:
                //正常比较
                sort($temp, SORT_REGULAR);
                break;
            case 2:
                //按照数字比较
                sort($temp, SORT_NUMERIC);
                break;
            //按照字符串进行比较
            case 3:
                sort($temp, SORT_STRING);
                break;
            //根据本地字符编码环境进行比较
            case 4:
                sort($temp, SORT_LOCALE_STRING);
                break;

        }
        echo "<pre class="code">";
        print_r($temp);
    }

    //逆序输出
    public function rev($type=1)
    {
        $length = count($this->collection);
        $temp = array();
        for($i=0; $i<$length; $i++) {
            if($this->collection[$i]) {
                $temp[] = $this->collection[$i];
            }
        }

        switch ($type) {
            case 1:
                //正常比较
                rsort($temp, SORT_REGULAR);
                break;
            case 2:
                //按照数字比较
                rsort($temp, SORT_NUMERIC);
                break;
            //按照字符串进行比较
            case 3:
                rsort($temp, SORT_STRING);
                break;
            //根据本地字符编码环境进行比较
            case 4:
                rsort($temp, SORT_LOCALE_STRING);
                break;

        }
        echo "<pre class="code">";
        print_r($temp);
    }


}

//简单的测试
$list = new hashTable(200);
$list->set("zero", "zero compare");
$list->set("one", "first test");
$list->set("two", "second test");
$list->set("three", "three test");
$list->set("four", "fouth test");
echo $list->val();
echo "after sorted : <br />";
$list->rev(3);
Salin selepas log masuk


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1011356.htmlTechArticlePHP实现哈希表 //一个简单的哈希表实现。。。。 size; $this->collection = new SplFixedArray($bucketsSize); } //生成散列值,作为存储数据的位置 private...
Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan algoritma carian hash dalam C++ Cara menggunakan algoritma carian hash dalam C++ Sep 19, 2023 pm 02:49 PM

Cara menggunakan algoritma carian cincang dalam C++ Algoritma carian cincang ialah teknologi carian dan storan yang cekap Ia menukar kata kunci kepada indeks panjang tetap melalui fungsi cincang, dan kemudian menggunakan indeks ini dalam Carian struktur data. Dalam C++, kita boleh melaksanakan algoritma carian hash dengan menggunakan bekas cincang dan fungsi cincang dalam perpustakaan standard. Artikel ini akan memperkenalkan cara menggunakan algoritma carian hash dalam C++ dan memberikan contoh kod khusus. Memperkenalkan fail pengepala dan ruang nama Pertama, sebelum menggunakan algoritma carian hash dalam C++

Bagaimana untuk menulis algoritma carian hash dalam Python? Bagaimana untuk menulis algoritma carian hash dalam Python? Sep 21, 2023 pm 02:37 PM

Bagaimana untuk menulis algoritma carian hash dalam Python? Algoritma carian hash, juga dikenali sebagai algoritma carian hash, ialah kaedah carian data berdasarkan jadual hash. Berbanding dengan algoritma carian tradisional seperti carian linear dan carian binari, algoritma carian hash mempunyai kecekapan carian yang lebih tinggi. Dalam Python, kita boleh menggunakan kamus untuk melaksanakan jadual hash dan kemudian melaksanakan carian hash. Idea asas algoritma carian hash adalah untuk menukar kata kunci untuk dicari kepada nilai indeks melalui fungsi hash, dan kemudian cari dalam jadual hash berdasarkan nilai indeks.

Teknologi asas Python didedahkan: cara melaksanakan algoritma hash Teknologi asas Python didedahkan: cara melaksanakan algoritma hash Nov 08, 2023 pm 06:40 PM

Mendedahkan teknologi asas Python: Cara melaksanakan algoritma cincang, contoh kod khusus diperlukan Ringkasan: Algoritma cincang ialah salah satu teknologi yang biasa digunakan dalam medan komputer dan digunakan untuk menentukan pengenalpastian unik data dengan cepat. Sebagai bahasa peringkat tinggi, Python menyediakan banyak fungsi cincang terbina dalam, seperti fungsi cincang() dan pelaksanaan pelbagai algoritma cincang. Artikel ini akan mendedahkan prinsip algoritma pencincangan dan butiran pelaksanaan asas Python, dan memberikan contoh kod khusus. Pengenalan kepada Algoritma Hash Algoritma Hash, juga dikenali sebagai algoritma hash, ialah kaedah menukar data sebarang panjang kepada

Penyulitan dan teknik pencincangan terbaik dalam pembangunan PHP Penyulitan dan teknik pencincangan terbaik dalam pembangunan PHP May 27, 2023 am 08:21 AM

Dalam era digital hari ini, dengan perkembangan Internet dan peningkatan kepentingan maklumat, kerahsiaan dan keselamatan data menjadi semakin penting. Untuk memastikan data tidak dicuri atau diusik semasa penghantaran, pembangun PHP sering menggunakan teknik penyulitan dan pencincangan untuk melindungi data sensitif. Artikel ini akan memperkenalkan teknologi penyulitan dan pencincangan yang paling biasa digunakan dalam pembangunan PHP, serta kelebihan dan kekurangannya. 1. Teknologi penyulitan Penyulitan ialah teknologi yang melindungi keselamatan data Ia menggunakan algoritma untuk menukar data kepada bentuk yang tidak bermakna. Hanya orang yang memegang kunci boleh memulihkannya kepada boleh dibaca

Artikel ringkas yang menerangkan apa itu algoritma cincang! Apakah algoritma hash? Artikel ringkas yang menerangkan apa itu algoritma cincang! Apakah algoritma hash? Mar 14, 2024 am 11:46 AM

Apabila memahami pelaburan Bitcoin dan teknologi blockchain, algoritma hash boleh dikatakan kerap muncul Dikatakan dalam bulatan mata wang bahawa hip-hop mempunyai hip-hop dan algoritma mempunyai hash. Bagi perkataan "algoritma", ia kini digunakan secara samar-samar oleh pengguna domestik Kadang-kadang ia merujuk kepada mekanisme konsensus, dan kadang-kadang ia merujuk kepada algoritma Hash khusus Sebagai algoritma blockchain, algoritma Hash sentiasa membuat orang ramai merasai tidak jelas. Jadi, apakah algoritma Hash? Seterusnya, editor bulatan mata wang akan memberi anda penjelasan ringkas tentang apa itu algoritma cincang? Saya berharap pelabur dapat memahami algoritma hash selepas membaca artikel ini. Apakah algoritma hash? Hash dialih huruf daripada "Hash", juga dikenali sebagai "hash". Pada asasnya program komputer yang menerima sebarang

Dalam PHP, apakah maksud fungsi hash? Dalam PHP, apakah maksud fungsi hash? Sep 03, 2023 am 08:49 AM

Fungsi cincang ialah sebarang fungsi yang boleh digunakan untuk memetakan data dari sebarang saiz kepada data saiz tetap. Nilai yang dikembalikan oleh fungsi cincang dipanggil nilai cincang, kod cincang, ringkasan atau ringkasnya cincang. Sintaks stringhash(string$algo,string$data[,bool$raw_output=FALSE]) Parameter algo Nama algoritma hash yang dipilih (seperti "md5", "sha256", "haval160,4", dll.) data kepada menjadi maklumat dicincang. Apabila raw_output ditetapkan kepada TRUE, data binari mentah akan dikeluarkan. FALSE mengeluarkan heksadesimal huruf kecil. Contoh<?php &nbsp

Cara mengendalikan fungsi pencincangan dan penyulitan dalam sistem perakaunan - Kaedah pembangunan untuk pencincangan dan penyulitan menggunakan PHP Cara mengendalikan fungsi pencincangan dan penyulitan dalam sistem perakaunan - Kaedah pembangunan untuk pencincangan dan penyulitan menggunakan PHP Sep 26, 2023 pm 01:15 PM

Cara mengendalikan fungsi pencincangan dan penyulitan dalam sistem perakaunan - Kaedah pembangunan pencincangan dan penyulitan menggunakan PHP Pengenalan: Dengan kemunculan era digital, keselamatan pelbagai sistem maklumat telah menjadi lebih penting. Apabila mereka bentuk dan membangunkan sistem perakaunan, melindungi data privasi pengguna adalah penting. Antaranya, penggunaan fungsi pencincangan dan penyulitan secara berkesan dapat melindungi maklumat sensitif pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi pencincangan dan penyulitan dalam sistem perakaunan, dan menyediakan contoh kod khusus. 1. Pelaksanaan fungsi cincang Hash ialah algoritma penyulitan sehala

Kepelbagaian Pengimbangan Beban PHP: Memahami Kebaikan dan Keburukan Teknologi Berbeza Kepelbagaian Pengimbangan Beban PHP: Memahami Kebaikan dan Keburukan Teknologi Berbeza Mar 02, 2024 pm 02:50 PM

Pengenalan Dalam dunia digital yang serba pantas dan bersambung hari ini, memastikan ketersediaan aplikasi yang tinggi adalah penting. Teknologi pengimbangan beban membolehkan aplikasi mengagihkan trafik masuk merentas berbilang pelayan, meningkatkan prestasi dan kebolehpercayaan. PHP menyediakan sokongan untuk pelbagai teknologi pengimbangan beban, masing-masing mempunyai kelebihan dan batasan uniknya sendiri. Round Robin Round Robin ialah teknik pengimbangan beban yang mudah dan berkesan yang mengedarkan permintaan kepada kumpulan pelayan mengikut urutan. Pendekatan ini mudah dilaksanakan dan memastikan permintaan diagihkan sama rata antara pelayan. $servers=array("server1","server2","server3");$index=0;while(true)

See all articles