[Tablica mieszania mają] O (1) do wprowadzania i przeszukiwanie
Myślę, że to jest złe.
Przede wszystkim, jeśli ograniczyć KEYSPACE być skończona, można przechowywać elementy w tablicy i zrobić O (1) skanowania liniowego. Albo można shufflesort tablicę, a następnie zrobić liniowego skanowania w czasie O (1) przewidywanego czasu. Gdy materiał jest skończony, materiał jest łatwo O (1).
Więc powiedzmy, że tabela hash będzie przechowywać dowolną bitowy ciąg; to nie tyle sprawa, tak długo jak istnieje nieskończona zestaw kluczy, z których każdy jest skończony. Następnie trzeba przeczytać wszystkie bity dowolnego wejścia zapytań i wstawiania innego wstawić y0 w pustym hash i zapytania na Y1, gdzie y0 i y1 różnią się w jednej pozycji bitu, który nie patrzeć.
Ale powiedzmy, że kluczowe odcinki nie są parametrem. Jeśli wstawiania i wyszukiwania wziąć O (1), w szczególności mieszaja zajmuje O (1) czasu, co oznacza, że tylko patrzeć skończonej ilości wyjściu z funkcji skrótu (od którego istnieje prawdopodobieństwo być tylko wyjście skończony, udzielonego ).
Oznacza to, że z skończenie wiele wiader, musi być nieskończony zbiór ciągów, które wszystkie mają taką samą wartość skrótu. Załóżmy, że mam włożyć dużo, czyli ω (1), od tych, i rozpocząć tworzenie kwerend. Oznacza to, że tabela hash musi spaść z powrotem na innej O (1) mechanizm wstawiania / wyszukiwania, aby odpowiedzieć na moje pytania. Który z nich i dlaczego nie wystarczy użyć bezpośrednio?