W podanym kodzie wskaż powód, dla którego algorytm sortowania przez wybór nie działa. Uzasadnij swoją odpowiedź oraz popraw wskazany błąd. Jeśli istnieje sytuacja, kiedy algorytm takiej postaci wykona mimo wszystko poprawne sortowanie, opisz ją. Jeśli nie – wyjaśnij, dlaczego.
void sortowanie_przez_wybor(int rozmiar, int tablica[])
{
int i, j, minIndeks;
for(i=0; i < rozmiar-1; i++)
{
minIndeks=i;
for(j=i+1; j < = rozmiar; j++)
{
if(tablica[j] < tablica[minIndeks]) minIndeks=j;
}
swap(tablica[minIndeks], tablica[i]);
}
}
Thorerv
Powodem jest, 'literówka' ?, podczas pętli for po j'tach, warunek końca pętli posiada błąd składniowy w postaci 'j < = rozmiar' operator '<' jest operatorem logicznym zatem po obu stronach potrzebuje wartości aby określić czy warunek mniejszości jest spełniony. Po jego prawej stronie znajduje się 'spacja' a następnie znak równości, czyli przypisania co nie powinno mieć miejsca. Zatem powodem jest odstęp pomiędzy operatorami '<' oraz '=' co najdaje nie prawidłowy kontekst. Poprawnym operatorem jest operator logiczny '<=' co powoduje, że algorytm nie tylko nie działa prawidłowo ale, kod nie przechodzi procesu kompilacji.
W załączniku poprawiony kod funkcji wraz z użyciem.
W załączniku poprawiony kod funkcji wraz z użyciem.