Sortowanie tablic z użyciem struktur danych – implementacja tablicy haszującej
Założenie: Zrozumieć i zaimplementować prostą tablicę haszującą w PHP, aby posortować tablicę w specyficznych przypadkach, gdzie tradycyjne algorytmy sortowania mogą być mniej wydajne.
Krok po kroku:
- Tworzenie funkcji haszującej: Funkcja ta przyjmuje klucz jako argument i zwraca indeks w tablicy. Prosta funkcja modulo może wystarczyć dla celów demonstracyjnych.
- Tworzenie tablicy haszującej: Inicjalizujemy tablicę o określonej wielkości. Wartości będą przechowywane w postaci par klucz-wartość.
- Wstawianie elementów: Dla każdego elementu z tablicy do posortowania, obliczamy jego indeks za pomocą funkcji haszującej i wstawiamy go do tablicy haszującej.
- Sortowanie i wyświetlanie: Sortujemy każdą listę w tablicy haszującej i wyświetlamy posortowane dane.
function hashFunction($key, $size) {
return $key % $size;
}
$hashTableSize = 10;
$hashTable = array_fill(0, $hashTableSize, []);
$data = [10, 5, 15, 20, 25, 5, 10];
foreach ($data as $value) {
$index = hashFunction($value, $hashTableSize);
$hashTable[$index][] = $value;
}
foreach ($hashTable as $list) {
sort($list);
foreach ($list as $value) {
echo $value . " ";
}
echo "
";
}
Pamiętaj, że ta implementacja jest uproszczona. W rzeczywistych zastosowaniach, bardziej zaawansowane funkcje haszujące i metody radzenia sobie z kolizjami są niezbędne dla efektywnego działania tablicy haszującej.
Ten przykład pokazuje podstawy implementacji tablicy haszującej w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi funkcjami haszującymi i metodami rozwiązywania kolizji.