PS. TK: Chodziło chyba o zamiane elementow co najwyzej jeden raz. Tak kminie i nie widze roznicy pomiedzy tym :/
Chodzilo mi o to, ze jezeli masz elementy: 3, 2, 1, 8 to zeby posortowac te tablice nalezy przestawic dwie liczby 3 i 1. Przestawienie tych dwoch liczb to JEDNA zamiana miejscami i wtedy dla takich danych testowych metoda, ktora tutaj umiesciles dzialalaby dobrze. Z drugiej jednak strony dla danych 3, 2, 1, 3, 2, 1, 8 i tak dzialalaby niepoprawnie. Jezeli nie musisz poprawiac tego co napisales bo jakis tam test online jest podstawa do wystawienia pozytywnej oceny to pewnie i tak to olejesz. Jednak gdybys chcial napisac to poprawnie to zrob to mniej-wiecej tak:
- Stworz sobie pomocnicza metode, ktora zwraca true jezeli dane sa posortowane lub false w przeciwnym przypadku. W pierwszych linijkach sprawdz:
a) Czy tablica jest pusta - jezeli tak to zwracasz true (zalozylem, ze pusta tablica to tablica posortowana - nie wiem na ile to sluszne zalozenie. Jezeli nie jest to sluszne zalozenie to wtedy zawsze mozesz rzucic wyjatkiem).
b) Czy tablica posiada tylko jeden element - jezeli tak to tablica musi byc posortowana i zwracasz true.
c) Warto tez sprawdzić czy parametr nie jest null-em - sam zdecyduj co wtedy zrobic.
Jezeli tablica zawiera co najmniej 2 elementy (nie sa spelnione zalozenia z powyzszych podpunktow) to wtedy sprawdzasz wszystko for-em dla i <0, do length-1). Jeżeli zostanie spełniony warunek A[i] > A[i+1] to zwracasz false. Za forem wstaw return true.
-
W metodzie wlasciwej (u Ciebie metoda solution) najpierw sprawdzasz czy dane sa juz posortowane (za pomoca metody pomocniczej). Jezeli sa, to zwracasz true, jezeli nie sa to wykonujesz nastepny krok.
-
Tworzysz sobie dwa for-y (drugi for powinien znajdować się wewnątrz pierwszego). Pierwszy dla i z przedzialu <0, do length-1), a drugi dla j z przedzialu od <i+1, do length). Zamieniasz wtedy wartość A[i] z A[j] (warto sobie pomoc zmienną tymczasową). Po zamianie sprawdzasz za pomocą metody pomoczniczej czy tablica jest posortowana. Jezeli jest to zwracasz true, jeżeli nie jest nie zwracasz nic (nie przerywasz dzialania algorytmu).
-
Bez wzgledu na to czy tablica jest posortowana w pkt. 3 czy nie jest powinienes przywrocic tablice do pierwotnej postaci, najlepiej od razu po ww. sprawdzeniu.
-
Metoda wlasciwa powinna zwracac domyslnie false.
Powinno dzialac poprawnie, nie wiem natomiast czy akurat optymalnie
<code=java></code>