Bir serial və hash masa ilə proqramlaşdırma dilində fərq nədir?


cavab 1:

Hash masaları seriallardan istifadə edir. Diziler hashing üçün vacib bir xüsusiyyətə sahibdir: Hər bir elementə indeksini bilsəniz, sabit bir zamanda daxil ola bilərsiniz.

Kovalar üçün seriallardan istifadə edə bilərsiniz. Mətndəki məktubların sayını, məsələn Morse kodu kimi bir şey hazırlamaq üçün saymaq istəyək. 26 giriş ilə bir sıra yaradırsınız (vurğu olmadan sadə Roman əlifbası üçün). Hər hansı bir məktub görəndə indeksini hesablayın və serialdakı həmin girişə keçin.

Hash masaları bunu istənilən uzunluqdakı düymələr üçün genişləndirir. Açarın hashasını hesablayırsınız və bu indeksə keçirsiniz. Problem çox düymələrin eyni hash olduqda. Bununla mübarizə aparmaq üçün bir neçə yol var, bəziləri hashın məqsədini ləğv edir (lakin həyata keçirmək asandır). Bəziləri, heç olmasa orta hesabla, daimi vaxt əmlakını saxlamırlar.

Gördüyüm ən yaxşı şey, hash masasının ölçüsündən asılı olmayaraq, Gonnet və Munroe'nin 50% yükləmə faktoru ilə ortalama 4-dən çox vuruşa sahib olduğu sübut edildi. Bununla birlikdə, bu, ilk nömrələrin istifadəsini tələb edir və bu da tətbiqini çətinləşdirir. Baş rəqəmləri birtəhər tapmalısan. Xoşbəxtlikdən, hash masaları o qədər də böyük olmur ki, bu gülünc hala gəlir.