| Perl a Sortowanie - Część Czwarta |
|---|
| przez wrares (200 odsłon) |
|
W poprzednich artykułach poruszaliśmy temat sortowania, wykorzystując algorytmy bazujące na porównywaniu elementów. Pytanie które się nasuwa to Czy można sortować elementy szybciej?, Czy do dyspozycji mamy tylko te metody sortowania. Odpowiedź jest prosta. Oczywiście że dysponujemy innymi mechanizmami. Nie zawsze porównywanie elementów jest dobre. Teraz skupimy się na sortowaniu pozycyjnym. Algorytm tego sortowania posiada wiele wariantów. RadixSort bo o nim mowa wykorzystuje wewnętrzną strukturę kluczy, aby przyśpieszyć sortowanie. Traktuje ono klucze jako liczby i ogląda każdy z nich cyfra po cyfrze. W zasobach CPAN dostępny jest moduł który realizuje to sortowanie. Jego adres dostępny jest tutaj.... Opis na wiki dostępny jest pod tym adresem.... Następnym algorytmem sortującym jest sortowanie poprzez zliczanie. Algorytm countingsort działa dobrze tylko z uporządkowanymi danymi. Dokładny opis dostępny jest tutaj.... Co zrobić gdy potrzebujemy posortować dane nie pieszczące się w pamięci RAM. Potrzeba zastosować inny algorytm który poradzi sobie z sortowaniem danych zapisanych sekwencyjnie. Z tego typu problemami radzi sobie strategia dziel i zwyciężaj. Idealnym kandydatem jest algorytm mergesort. Wczytuje on swoje dane sekwencyjnie a następnie je łączy w całość. Wybór przedstawionych algorytmów w swoich programach nie jest trudny. Należy się kierować ogólnie przyjętymi zasadami. A mianowicie Cytat:
Wiele zadań można rozwiązać używając tylko wbudowanej funkcji sort z określonymi opcjami. Jak wynika z dokumentacji... mamy już kilka algorytmów zaimplementowanych. Dlatego przed podjęciem decyzji należy zastanowić się nad wyborem funkcji sort, która poprzez wybór przełącznika umożliwi na odpowiedni dobór algorytmu. I to by było na tyle. |
| Powrót |




