18-11-2010, 18:45
Tak jak ten wątek brzmi, takie ma znaczenie
W wątku tym możecie umieszczać linki,artykuły,tutoriale itp. związane z Javą
Ja zaczynam
Powyższy kod demonstruje algorytm sortowania bąbelkowego oraz udawadnia iż Java jest językiem w pełni obiektowym w przeciwieństwie do np.Ansi C, w którym przyszło nam operować mniej użytecznymi strukturami.W głównej klasie "Program" tworzymy statyczną funkcję void o nazwie "main", która działa tak samo jak jej odpowiednik w C++, czyli "inicjuje" cały program, inicjując tym samym obiekt klasy "Sortownie", który nazywa się podobnie od nazwy klasy, której jest obiektem.Aby nasz program "umiał" losować liczby musimy zadeklarować obiekt klasy "Random", który w konstruktorze klasy "Sortowanie" alokuje sobie pamięć poprzez użycie operatora "new" i inicjuj swój konstruktor.Tłumaczenie kodu algorytmu pomijam, ponieważ każdy nawet początkujący programista powinien go zrozumieć bez żadnych przeszkód.Zapewne myślicie sobie "A po co ta funkcja copy?", a otóż jest ona bardzo przydatna, ponieważ kopiuje ona jeden element tablicy do drugiego elementu tej samej tablicy i odwrotnie, tworząc tym samym w sobie zmienne przechowujące przenoszone pomiędzy nimi dane.
W wątku tym możecie umieszczać linki,artykuły,tutoriale itp. związane z Javą
Ja zaczynam

Kod:
import java.util.*;
class Program {
static Sortowanie sortowanie;
public static void main(String[] args)
{
sortowanie = new Sortowanie(22);
sortowanie.Sortuj(sortowanie.Malejaco,true);
sortowanie.Wyswietl();
}
}
class Sortowanie
{
public Sortowanie(int Wielkosc)
{
this.Wielkosc = Wielkosc;
this.tab = new int[Wielkosc];
rand = new Random();
}
public boolean Sortuj(int Sposob,boolean Losuj)
{
if(Losuj == true)for(int i = 0;i < Wielkosc;++i)
{
tab[i] = rand.nextInt(100);
}
for(int j = 0;j < Wielkosc - 1;++j)
{
for(int i = 0;i < Wielkosc - 1;++i)
{
switch(Sposob)
{
case 1:if(tab[i] > tab[i + 1])Copy(tab[i],tab[i + 1],i);break;
case 2:if(tab[i] < tab[i + 1])Copy(tab[i],tab[i + 1],i);break;
default:if(tab[i] > tab[i + 1])Copy(tab[i],tab[i + 1],i);break;
};
}
}
if(Wielkosc > 2)return true;
else return false;
}
public void Wyswietl()
{
for(int i = 0;i < Wielkosc;++i)
{
System.out.print("|" + tab[i]);
}
System.out.println("");
}
public void Copy(int Liczba_1,int Liczba_2,int i)
{
int l1 = Liczba_1;
int l2 = Liczba_2;
this.tab[i] = l2;
this.tab[i + 1] = l1;
}
public Random rand;
public final int Malejaco = 1;
public final int Rosnaco = 2;
private int[] tab;
private int Wielkosc;
};