Algorytmy i struktury danych, USM, zaoczne. Ćwiczenie 5.
Algorytmy sortowania plików
Cel ćwiczenia: Implementacja algorytmów sortowania plików: łączenie naturalne, łączenie wyważone, sortowanie polifazowe. Porównanie efektywności czasowej algorytmów.
1. Utworzyć na dysku plik tekstowy o nazwie dane.txt zawierający N losowych liczb całkowitych typu longint, należących do przedziału [-1 000 000, 1 000 000), gdzie N jest stałą w programie. Liczby powinny być oddzielone spacjami, tj. przed każdą liczbą zapisaną w postaci znakowej powinna znajdować się co najmniej jedna spacja.
Opracować program umożliwiający podział pliku dane.txt na serie (uporządkowane ciągi danych) o długości K, gdzie K jest stałą. Dane należy wczytywać z pliku do tablicy o rozmiarze K, a następnie sortować w oparciu o algorytm przesiewania przez kopiec lub algorytm qsort. Serie należy przepisywać z tablicy do pliku tekstowego o nazwie dane1.txt.
2. Opracować program sortowania pliku tekstowego zawierającego N losowych liczb całkowitych typu longint, należących do przedziału [-1 000 000, 1 000 000) i rozdzielonych spacją, gdzie N jest stałą w programie. Wykorzystać algorytm sortowania przez łączenie naturalne. Prostsza wersja zadania może polegać na dokonaniu konwersji pliku tekstowego do binarnego, sortowaniu pliku binarnego i zapisaniu wyniku sortowania ponownie do pliku tekstowego. Zmierzyć czas sortowania.
3. Opracować program sortowania pliku tekstowego zawierającego N losowych liczb całkowitych typu longint, należących do przedziału [-1 000 000, 1 000 000) i rozdzielonych spacją, gdzie N jest stałą w programie. Wykorzystać algorytm sortowania przez wielokierunkowe łączenie wyważone. Sprawdzić działanie algorytmu dla K=2 plików wejściowych i L=2 plików wyjściowych. Prostsza wersja zadania może polegać na dokonaniu konwersji pliku tekstowego do binarnego i sortowaniu pliku binarnego.
Zmierzyć czas sortowania.
4. Opracować program sortowania pliku tekstowego zawierającego N losowych liczb całkowitych typu longint, należących do przedziału [-1 000 000, 1 000 000) i rozdzielonych spacją, gdzie N jest stałą w programie. Wykorzystać algorytm sortowania polifazowego. Sprawdzić działanie algorytmu dla K=3 plików. Prostsza wersja zadania może polegać na dokonaniu konwersji pliku tekstowego do binarnego i sortowaniu pliku binarnego. Zmierzyć czas sortowania.