cari

Rumah  >  Soal Jawab  >  teks badan

redis字典的内部实现方式

最近在看redis的设计与实现一书,看到字典这一章节时,发现redis字典的增删改查操作的复杂度都是O(1):

对此不太懂,看了它的数据结构,感觉不应该是O(1)的复杂度,给定一个key,去查value的话如果不是定长并且有序的储存结构,怎么可能是O(1)的复杂度?

高洛峰高洛峰2840 hari yang lalu829

membalas semua(4)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-04-24 16:02:29

    Gambar berikut ialah gambarajah skematik Jadual Hash:

    Perkara utama ialah mengoptimumkan Hash Function untuk mengurangkan konflik sebanyak mungkin. Itu untuk mengelakkan key yang berbeza daripada dipetakan kepada value yang sama, walaupun ia tidak penting walaupun terdapat konflik. . .

    Rujukan:
    http://www.tutorialspoint.com/data_structures_algorithms/hash_data_structure.htm Tidak pasti jika anda perlu memintas tembok api.

    PS: Anda boleh membaca pengenalan kepada algoritma. . .

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-04-24 16:02:29

    Nampaknya penyoal tidak tahu apa itu hash Adalah disyorkan untuk meletakkan asas struktur data dahulu, dan kemudian mengkaji aplikasi redis berdasarkan struktur data.

    Sudah tentu, kerumitan cincang O(1) merujuk kepada kerumitan purata, dan ia juga merupakan keadaan paling ideal Kes terburuk ialah O(n)

    balas
    0
  • 習慣沉默

    習慣沉默2017-04-24 16:02:29

    Saya tidak begitu faham, bagaimana kerumitan melintasi senarai terpaut boleh menjadi 1?

    balas
    0
  • 某草草

    某草草2017-04-24 16:02:29

    Kamus yang dipanggil ialah jadual cincang dan kerumitan penambahan, pemadaman dan pengubahsuaian peta cincang adalah linear tanpa terlalu banyak perlanggaran. ~~

    balas
    0
  • Batalbalas