Cytat:Niniejsze ćwiczenie polega na implementacji i analizie działania algorytmów sortowania danych w pamięci zewnętrznej (algorytmów sortowania danych przechowywanych w plikach):
· naturalnego,
· wielokierunkowego
· polifazowego
Dane przechowywane w plikach powinny mieć postać struktur:
struct Osoba {
char imie[20];
char nazwisko[20];
int wiek;
};
zaś sortowanie powinno odbywać się wg. wybranej składowej (imienia, nazwiska, wieku).
Podobnie do poprzednich zajęć, w kodzie programu należy umieścić liczniki podstawowych operacji na pamięci operacyjnej (jak dodawanie, przypisanie, itp.) oraz liczniki podstawowych operacji na plikach (fwrite, fread, fclose, fopen itp.). Liczniki te mają dać odpowiedź na pytanie, jak działają algorytmy w zależności od rozkładu danych.
Rozróżnienie pomiędzy licznikami związanymi z operacjami na pamięci operacyjnej oraz licznikami związanymi z operacjami we/wy wiąże się z faktem, że te drugie dotyczą operacji dużo wolniejszych.
Badania porównawcze algorytmów należy przeprowadzić dla danych wejściowych: nieposortowanych (wygenerowanych losowo z arbitralnie dobranym ziarnem generatora), uporządkowanych częściowo i całkowicie posortowanych. Odpowiednie wnioski powinny pojawić się w pliku tekstowym oddawanym wraz z kodem źródłowym programu.
Aby porównanie algorytmów miało sens, dane poddawane sortowaniu powinny być identyczne w każdym eksperymencie.
Implementowany program powinien dawać możliwość wyboru następujących operacji:
wstawianie do pliku danych o zadanym rozkładzie danych
wyświetlania zawartości pliku,
wyboru algorytmu sortowania,
wyboru rozkładu danych (tj. ilości danych i sposobu ich inicjalizacji)
prezentację uzyskanych wyników.
Wiem tylko co to jest to naturalne.
Co z tymi innymi?
Pozdrawiam.