Program sortujący

0

Witam. Mam pewne zadanie do napisania lecz nie rozumiem do końca polecenia.
"Program ma umożliwiać porównanie co najmniej 3 różnych algorytmów sortujących zaimplementowanych na listach jednokierunkowych w tym algorytm QuickSort lub MergeSort. Zamiana elementów musi być realizowana przez zamianę wskaźników. Porównywane wartości to ilość zamian i ilość porównań wykonywana przez każdy z algorytmów. Dane do sortowania powinny być wczytywane z pliku, a posortowane zapisywane do pliku. Nazwy plików podaje użytkownik, w czasie działania programu lub jako jego parametry."
Nie rozumiem po co mam zaimplementować algorytmy na liście , i jak sortować za pomocą zamiany wskaźników (czy to po prostu jest straszna nazwa ,a sortowanie jest zwyczajne).

0

Algorytmy na liście masz zaimplementować właśnie po to żeby przepinać wskaźniki a nie kopiować wartości.
Zamiast zamieniać wartości na zasadzie:

int tmp = first;
first = second;
second = tmp;

Masz robić

// zapamiętujesz sobie pomiędzy jakimi elementami w liście był pierwszy obiekt
int* prev = prev(first);
int* next = first.next;
// podmieniasz go z drugim obiektem w liście
prev(second) -> next = first;
first->next = second->next;
// wpisujesz drugi obiekt w miejsce pierwszego
prev->next = second
second->next = next;
0

Czyli jak zrozumialem , odczytuje plik , wrzuca jego elementy do listy , sortuje je a potem zapisuje w pliku , tak ?

0

Prawie, bo tak trzy razy dal różnych algorytmów.

0

Czyli trzy listy. Okej dzięki.

0

Nie, lista jedna.

0

No dobra , rozumiem.Tylko jednego nie kminie , czym są dane wczytane z pliku ? Jeżeli bedzie tam troche cyfr i troche wyrazów to w jaki sposob ma to posortować?

0

Albo zapytaj prowadzącego albo sam załóż jakieś sensowne granice.

1 użytkowników online, w tym zalogowanych: 0, gości: 1