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).
- Rejestracja:ponad 9 lat
- Ostatnio:12 miesięcy
- Postów:32
0

- Rejestracja:około 21 lat
- Ostatnio:około 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
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;
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.