Czy dobrze robie program? prosze przejrzyjcie to…Program ma umożliwiać porównanie co najmniej 3 różnych algorytmów sortujących
zaimplementowanych na listach jednokierunkowych w tym algorytm QuickSort. 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.
na listach
musi być koniecznie quick sort!
// SORTOWANIE PRZEZ WYBÓR
void przez_wybor(void) {
ELEMENT *a = NULL;
ELEMENT *b = NULL;
ELEMENT *c = NULL;
ELEMENT *d = NULL;
ELEMENT *tmp = NULL;
a = c = glowny;
while (a->nast != NULL) {
d = b = a->nast;
while (b != NULL) {
if (a->liczba > b->liczba) {
/* neighboring linked list node */
if (a->nast == b) {
if (a == glowny) {
a->nast = b->nast;
b->nast = a;
tmp = a;
a = b;
b = tmp;
glowny = a;
c = a;
d = b;
b = b->nast;
}
else {
a->nast = b->nast;
b->nast = a;
c->nast = b;
tmp = a;
a = b;
b = tmp;
d = b;
b = b->nast;
}
}
else {
if (a == glowny) {
tmp = b->nast;
b->nast = a->nast;
a->nast = tmp;
d->nast = a;
tmp = a;
a = b;
b = tmp;
d = b;
b = b->nast;
glowny = a;
}
else {
tmp = b->nast;
b->nast = a->nast;
a->nast = tmp;
c->nast = b;
d->nast = a;
tmp = a;
a = b;
b = tmp;
d = b;
b = b->nast;
}
}
}
else {
d = b;
b = b->nast;
}
}
c = a;
a = a->nast;
}
}
// SORTOWANIE BĄBELKOWE
void babelkowe(void) {
ELEMENT *a = NULL;
ELEMENT *b = NULL;
ELEMENT *c = NULL;
ELEMENT *e = NULL;
ELEMENT *tmp = NULL;
while(e != glowny->nast) {
c = a = glowny;
b = a->nast;
while(a != e) {
if(a->liczba > b->liczba) {
if(a == glowny) {
tmp = b -> nast;
b->nast = a;
a->nast = tmp;
glowny = b;
c = b;
} else {
tmp = b->nast;
b->nast = a;
a->nast = tmp;
c->nast = b;
c = b;
}
} else {
c = a;
a = a->nast;
}
b = a->nast;
if(b == e)
e = a;
}
}
}