Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Pripravte svoje pole . Ak ešte nemáte objektu poľa v programe , vytvoriť teraz :
//vytvorenie poľa a určiť dĺžku
int [ ] someNumbers = new int [ 13 ] ;
//vytvorenie inštancie pole s niektorými prvkami
for ( int i = 0 ; i < someNumbers.length ; i + + ) Spojené
someNumbers [ i ] = i ;
Tento príklad používa primitívny typ ints , ale táto metóda funguje pre polia akéhokoľvek druhu , vrátane objektov . V tomto príklade pole spočiatku obsahuje čísla bežiace od nuly hore
2
Vytvorte premenné sledovať svoje pozície , ako budete pohybovať po poli od jedného konca : .
//jeden začína na prvom mieste , druhá v poslednej
int leftPosn = 0 ;
int rightPosn = someNumbers.length - 1 ;
algoritmus bude používať slučky , každá iterácia , ktorá bude zahŕňať prehodenie dvoch prvkov , počnúc tým , že vymení prvý a posledný , potom pokračuje smerom k stredu .
3
vytvoriť slučku pre váš algoritmus . Môžete použiť akýkoľvek typ slučky dáva najväčší zmysel pre vás , ale v tomto prípade je najjednoduchšie možnosťou je while :
//overiť , či ľavej a pravej pozície sú stále k dosiahnutiu stredného
while ( leftPosn < rightPosn )
{
obsah
//slučka pokračuje tu
}
slučka bude pokračovať tak dlho , kým po ľavej a pravej strane čítača ešte nedosiahli uprostred poľa .
4
Swap každú dvojicu prvkov v poradí . Vnútri cyklu while ( v " obsah slučka pokračuje tu " ) :
//kopírovať vľavo prvok vo dvojici do novej dočasnej premennej
int tempCopy = someNumbers [ leftPosn ] ;
//kopírovať krajnej prvok do ľavej krajnej polohy
someNumbers [ leftPosn ] = someNumbers [ rightPosn ] ;
/* kópia pôvodnej vľavo prvok z dočasnej premennej
* do pravej krajnej polohy * /
someNumbers [ rightPosn ] = tempCopy ; .
dočasné premenné musia byť k dispozícii v každej iterácii slučky iba
5
Presuňte svoje pozície pult premenné pozdĺž každej dobe slučka spustí . V while kódu slučka bloku ( po swapu ) :
//inkrementácia a dekrementace pozície pokračovať v práci smerom k stredu
leftPosn + + ;
rightPosn - ;
Otestujte si svoje kód bežiaci program a výstup obsah vášho poľa takto ( po while ) :
for ( int j = 0 ; j < someNumbers.length ; j + + )
System.out.println ( someNumbers [ j ] ) ;