Chcemy napisać metodę, która posortuje nam przekazany jako parametr wektor liczb całkowitych metodą sortowania przez wybieranie. Sortowanie przez wybieranie polega na wyszukaniu elementu mającego znaleźć się na zadanym indeksie i zamianie miejscami z tym, który jest tam obecnie.
/**
* Sortowanie przez wybieranie
* @author kodatnik.blogspot.com
*/
public class SortowaniePrzezWybieranie {
// metoda sortuje elementy tablicy przekazanej jako parametr
public static void sortowaniePrzezWybieranie(int[] wejscie) {
// zmienna przechowująca rozmiar tablicy
int rozmiarTablicy = wejscie.length;
// pętla przejścia przez wszystkie elementy tablicy
for (int i = 0; i < rozmiarTablicy; i++){
// zakladamy, ze element na pozycji i jest najmniejszy
int min = wejscie[i];
// zapisujemy indeks tego elementu
int indeks = i;
// szukamy w pozostałej części tablicy elementu mniejszego niz min
for (int j = i; j < rozmiarTablicy; j++){
// jesli jest taki, on staje się teraz elementam najmniejszym
if(wejscie[j] < min) {
min = wejscie[j];
// zapisujemy jego indeks
indeks=j;
}
}
// zamieniamy miejscami elementy w tablicy
// najmniejszy z aktualnym wskazywanym przez zmienną i
wejscie[indeks] = wejscie[i];
wejscie[i] = min;
}
}
// metoda wyświetla zawartość tablicy przekazanej jako parametr na ekranie
public static void pokazTablice(int[] wejscie) {
// każdy element znajdujący się w tablicy wyświetlamy na ekranie
for(int x : wejscie) System.out.print (x + " ");
System.out.println ();
}
public static void main(String[] args) {
// tworzymy tablicę wypełniając ją od razu danymi
int[] tablica = {4, 6, 1, 2, 3, 8, 7, 9, 5};
// wyświetlamy tablicę na ekranie
pokazTablice(tablica);
// sortujemy tablicę
sortowaniePrzezWybieranie(tablica);
// wyświetlamy posortowaną tablicę na ekranie
pokazTablice(tablica);
}
}
Uruchomiona aplikacja:
4 6 1 2 3 8 7 9 5
1 2 3 4 5 6 7 8 9
2 Komentarze - Sortowanie przez wybieranie
W pierwszej pentli nie powinno być od i=0 do rozmiar tablicy - 1 ?
teraz wiem jak sie to robi dzieki
Prześlij komentarz
Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)