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 przez wstawianie (insertionsort) - Implementacja w Java
Ocena użytkownikóww: *****  / 8
SłabyŚwietny
Nadesłany przez Rafał Gawlik, 13 lutego 2012 17:39
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.

Insertionsort.java:
/*
Implementacja sortowania InsertionSort
Rafał Gawlik
www.algorytm.org
*/
import java.util.Scanner;

public class Insertionsort{

	public static void insertionSort(int[] tablica){

		int klucz, j;

		//dla kazdego elementu tablicy do posortowania, poczawszy od drugiego
		for (int i=1;i<tablica.length;i++){
			j=i;
			klucz=tablica[i];
			//poszukaj miejsca dla aktualnego elementu
			//szukaj tylko w posortowanej juz czescie tablicy
			//(czyli wsrod elementow o indeksach mniejszych od aktualnego)
			//przesuwaj element w kiedunku poczatku tablicy
			//tak dlugo, az przed nim jest element wiekszy i
			//nie znajduje sie na poczatku tablicy
			while (j>0 && tablica[j-1]>klucz){
				tablica[j]=tablica[j-1];
				j--;
			}
			tablica[j]=klucz;
		}

		//wypisz zawartosc posortowanej tablicy
		for(int i = 0 ; i<tablica.length; i++){
			System.out.println("#"+ (i+1) +" :\t" + tablica[i]);
		}
		System.out.println();
	}

	public static void main(String[] args){

		String liczba;
		String ile_liczb;
		int wielkosc, l;

		//wyswietl tytul
		System.out.println("\n\nSortowanie");
		System.out.println("Insertion Sort\n");

		//pobierz od uzytkownika liczbe elementow do sortowania
		Scanner odczyt = new Scanner(System.in);
		System.out.println("Jak duzo liczb chcesz posortowac?:");
		ile_liczb = odczyt.nextLine();
		wielkosc = Integer.parseInt(ile_liczb);
		System.out.println("\n");

		//utworz tablice i wczytaj do niej elementy
		int[] tablica = new int[wielkosc];
		for(int i = 0; i<wielkosc; i++){
			l= i+1;
			System.out.print("Wpisz liczbę\t #" + l+ " \t ");
			liczba = odczyt.nextLine();
			tablica[i] = Integer.parseInt(liczba);
		}
		System.out.println();

		//posortuj elementy tablicy
		insertionSort(tablica);
	}
}
Komentarze
photo
0 # bsdfv 2018-04-10 23:00
insertionSort(i nt[]) nie musi być static żeby być wykorzystanym w main'ie. Lepiej utworz obiekt klasy main i wtedy wykonaj metodę przez ten obiekt.

Main m = new Main();
m.insertionSort(t ablica);

z tym kodem możesz nie korzystać z 'static'
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz