Czy może Pan/Pani wyjaśnić zasadę działania tablicy haszującej i jak są w niej przechowywane dane?
sobes.tech AI
Odpowiedź od AI
Tablica haszowa to struktura danych, która zapewnia bardzo szybki dostęp do danych za pomocą klucza. Zasada działania opiera się na użyciu funkcji haszującej, która zamienia klucz na indeks tablicy, w którym przechowywana jest odpowiednia wartość.
Gdy trzeba zapisać parę klucz-wartość, funkcja haszująca oblicza indeks, a dane są umieszczane w komórce tablicy pod tym indeksem. Podczas wyszukiwania po kluczu, funkcja haszująca ponownie oblicza indeks, i szybko znajduje potrzebną wartość.
Jeśli dwa różne klucze dają ten sam indeks (kolizja), zwykle stosuje się metodę łańcuchów — w komórce przechowywana jest lista wszystkich elementów z tym indeksem, a wyszukiwanie odbywa się na tej liście.
Przykład w Dart (Flutter):
void main() {
Map<String, int> hashTable = {};
hashTable['apple'] = 5;
hashTable['banana'] = 3;
print(hashTable['apple']); // 5
}
Tutaj Map to implementacja tablicy haszującej, gdzie klucz to ciąg znaków, a wartość to liczba.