Chodzi mi o wersję tego algorytmu z dwiema tablicami.
I mam problem.
Staram się go napisać nie patrząc na przykłady innych kodów, wszystko ok z jednym wyjątkiem.
2 tablice, zmienna i , zmienna j i zmienna min.
Pętla for (używa i) leci tyle razy ile jest elementow w tablicy.
W każdym przebiegu pętla szuka (dzięki j) minimalnej wartości, (na początku tab[0] jest min, potem jeśli któryś element jest mniejszy to on jest min, przy czym musi być jeszcze spełniony warunek że min nie może być mniejszy bądź równy sort_tab[i)
Na koniec, sort_tab = min.
No i niestety jest to niedoskonały algorytm dla tablicy w której jest kilka razy taka sama wartość…
Bez różnicy w którym miejscu to chciałeś wstawić, jeżeli znalazłeś minimum z jakiegoś zakresu to wpisując go (ten minimum) w konkretną komórkę tablicy gubisz zawartość tej konkretnej komórki.
Musiałbyś zaznaczać które wartości z tablicy tb[] już weszli do posortowanej tablicy.
To oznacza że potrzebujesz, jedno z:
[*:3nt415ol]Trzecią tablice typu bool[*:3nt415ol]Najpierw znaleźć maksimum i zamieniać “zużytą” wartość[*:3nt415ol]Podmieniać “zużyte” wartości na np +INF (wynik dzielenia przez 0)
Każde z tych rozwiązań prowadzi do tego że algorytm przestanie być algorytmem sortowania przez selekcje.