algorytm.org

Implementacja w Java

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Sortowanie bąbelkowe (bubblesort) - Implementacja w Java
Ocena użytkownikóww: *****  / 6
SłabyŚwietny
Nadesłany przez Robert Ziarko, 28 grudnia 2012 17:21
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

Bubble.java:
/**
 * Sortowanie liczb calkowitych metoda babelkowa
 * Program zostal pobrany ze strony www.algorytm.org
 * @author Robert Ziarko (c)2012
 */
class Bubble
{
	private static int[] tablica;
	
	public static void main(String[] args) throws java.io.IOException 
	{
		System.out.println("Wpisz liczby które chcesz posortować oddzielone spacją:");
		
		java.io.BufferedReader reader = new java.io.BufferedReader (new java.io.InputStreamReader(System.in));
		java.util.StringTokenizer liczby = new java.util.StringTokenizer(reader.readLine());
		
		// wstaw liczby do tablicy
		tablica = new int[liczby.countTokens()];
		for (int i=0;i<tablica.length;i++)
			tablica[i] = Integer.parseInt(liczby.nextToken());
		
		
		b_sort(tablica); // sortuj
		
		
		// wyswietl posortowae liczby
		System.out.println("Posortowane liczby:");
		for (int liczba:tablica)
			System.out.print(liczba+" ");
	}
	
	public static void b_sort(int[] tablica)
	{
		int mniejszaLiczba = tablica.length-1; // indeks pierwszej porownywanej liczby; wartosc poczatkowa
		int wiekszaLiczba = mniejszaLiczba-1; // indeks drugiej porownywanej liczby; wartosc poczatkowa
		
		int tmp;
		while (wiekszaLiczba >= 0) // indeks drugiej porownywanej liczby musi byc nie mniejszy niz zero
		{
			if (tablica[wiekszaLiczba] > tablica[mniejszaLiczba]) // jesli druga liczba jest wieksza niz pierwsza
			{
				tmp = tablica[wiekszaLiczba];
				tablica[wiekszaLiczba] = tablica[mniejszaLiczba]; // zamien wartosci
				tablica[mniejszaLiczba] = tmp;
				
				mniejszaLiczba = tablica.length-1;  // zresetuj licznik
				wiekszaLiczba = mniejszaLiczba-1;   // zresetuj licznik
			}
			else // jesli druga liczba jest mniejsza lub rowna pierwszej, zmniejsz licznik o 1
			{
				mniejszaLiczba--;
				wiekszaLiczba--;
			}
		}
	}
}
Dodaj komentarz