/ / Sortuj przez scalanie: opis działania algorytmu i różnic w stosunku do innych rodzajów porządkowania danych

Scal sortowanie: opis algorytmu i różnice w porównaniu z innymi typami porządkowania danych

Przy opracowywaniu różnych programów praktycznieprogramiści zawsze muszą uciekać się do korzystania z sortowania w celu optymalizacji algorytmów pracy, poprawy wydajności operacji wyszukiwania itp. Obecnie istnieje wiele różnych metod ułożenia elementów w wymaganej kolejności: sortowanie przez scalanie, użycie klucza itp. Sortowanie to zespół operacji, których wynik prowadzi do uporządkowania obiektów tego samego typu w porządku malejącym lub rosnącym - w zależności od wymagań konkretnego zadania.

Cała różnorodność algorytmów sortowania może byćpodzielone na dwie kategorie: porządkowanie tablic i porządkowanie plików. Obiekty pierwszego typu mogą znajdować się nie tylko w pamięci RAM, ale także na jakimś nośniku, pod warunkiem, że dostęp do nich jest otwarty bezpośrednio. Druga kategoria przedmiotów musi znajdować się na materialnym nośniku: dysku lub taśmie magnetycznej.

Kluczowa różnica między zamawianiem przedmiotówtablicy i lokalizacji w zadeklarowanej kolejności plików jest to, że wszyscy członkowie tablicy są dostępni w dowolnym momencie podczas uzyskiwania do nich dostępu, a zatem proces sortowania rozpoczyna się natychmiast od momentu rozpoczęcia procedury bez przerw z powodu niedostępności jednego lub kolejny element. Jednak w przypadku zamawiania plików w określonym momencie dostęp można przyznać tylko ograniczonej grupie członków.

Wystarczająco często, aby organizować plikiStosowane jest sortowanie przez scalanie, które jest rozwijane na podstawowych zasadach układania elementów w określonej kolejności. Ogólnie procedurę sortowania można opisać w następujący sposób: pewien segment danych jest wybierany i używany jako klucz. Jako przykład rozważmy przykład sortowania przesyłek pocztowych według określonego indeksu. W efekcie algorytm nie dokonuje pełnej analizy informacji, ale jednocześnie z dużym prawdopodobieństwem sortuje niezbędne elementy.

Główna różnica między plikami sekwencyjnymi aPliki z zapewnieniem bezpośredniego dostępu polega na tym, że mogą być umieszczone na nośnikach, które są trudne do zorganizowania w stałym, bezpośrednim dostępie. Ponadto takie pliki zwykle nie mają stałej długości przechowywanych rekordów. Ze względu na te funkcje pliki sekwencyjne są używane tylko w dwóch sytuacjach:

- w razie potrzeby użycie nośnika danych zorientowanego na dostęp sekwencyjny;

- kiedy wygodnie jest stosować zmienną długość rekordów.

Sortowanie przez scalanie jest dość często używanew nowoczesnym oprogramowaniu. Wynika to z szerokiej dystrybucji plików sekwencyjnych. Na przykład prawie wszystkie pliki tekstowe są sekwencyjne. Pomimo wygody rozpatrywania sekwencyjnie zorganizowanego pliku jako tablicy danych, takie podejście jest niemożliwe, ponieważ niemożliwy jest fizyczny dostęp do wszystkich elementów pliku za pomocą sprzętu.

Sortowanie przez scalanie stało się w rzeczywistości jedynymsposób sortowania plików sekwencyjnych. Chociaż obecnie istnieją inne metody organizowania plików sekwencyjnych, ta metoda pozostaje jedną z najpopularniejszych. Naturalne sortowanie przez scalanie oznacza podzielenie pliku na dwie części o równej objętości informacji. Ponadto z każdego pliku następuje stopniowe odczytywanie każdego elementu z tych, które są aktualnie dostępne. Zamówione elementy są ułożone w wymaganej kolejności w trzecim pliku, który jest dalej podzielony na dwa podobnej wielkości. W ten sposób odbywa się sortowanie przez scalanie. Pascal, C, Basic – większość znanych języków programowania wspiera realizację tego typu sekwencyjnego porządkowania plików.