[Tabele de dispersie au] O (1) inserție și căutarea
Cred că acest lucru este greșit.
În primul rând, dacă limitați keyspace să fie finit, ai putea stoca elementele într-o matrice și de a face o O (1) scanare liniară. Sau ai putea shufflesort matrice și apoi face o scanare liniară în O (1) timp de așteptat. Când lucrurile este finit, lucruri este ușor de O (1).
Deci, să presupunem că masa de hash va stoca orice șir de biți arbitrar; aceasta nu contează prea mult, atât timp cât există un set infinit de chei, fiecare dintre acestea sunt finite. Apoi, va trebui să citiți toate biți de orice interogare și inserție de intrare, altfel am insera y0 într-un hash gol și interogare pe y1, în cazul în care y0 și y1 diferă de la o poziție de singur bit care nu te uita la.
Dar să spunem că lungimile cheie nu sunt un parametru. Dacă inserarea și căutați să ia O (1), în special , tocare ia O (1) timp, ceea ce înseamnă că te uiți doar la o cantitate finită de ieșire din funcția de hash ( de la care nu este probabil să fie doar o ieșire finită, acordat ).
Acest lucru înseamnă că, cu multe găleți finit, trebuie să existe un set infinit de șiruri care au toate aceeași valoare hash. Să presupunem că se introduce o mulțime, adică ω (1), dintre acestea, și începe interogarea. Acest lucru înseamnă că tabelul dvs. hash trebuie să cadă din nou pe un alt (1) Mecanismul de inserție / căutare O pentru a răspunde la întrebările mele. Care dintre ele, și de ce nu doar că folosesc în mod direct?