Gyakorlati alapok
Elemi programozási tételek egy 10 elemű tömbön
Egyszerű cserés rendezés
Ezzel az algoritmussal növekvő vagy csökkenő sorrendbe tudjuk rendezni a tömbben lévő elemeket. Az algoritmus lényege, hogy az első elem (tomb[i]) mindig össze van hasonlítva (if(tomb[i] > tomb[j])) a következő elemmel (tomb[i] + 1), amit tomb[j] reprezentál. Ha valamelyik kisebb nála, akkor a 2 elem kicserélődik. Ehhez egy ideiglenes int tarolo változót használunk fel, mindezt kényszerűségből, hiszen nem tudunk 2 változóértéket egyszerre megcserélni, hanem az egyiket átmenetileg el kell tárolnunk.
A probléma egy másik szemszögből: jobb és bal kezünkben 1-1 db szorongatott alma. Nem tudjuk őket egyszerre megcserélni, csak úgy, ha az egyik almát letesszük az asztalra, a másikat pedig áttesszük a másik kezünkbe. Artisták persze ezt képesek megoldani almafeldobással is, ám ez nem lehetséges a programozás során, tehát nincs olyan művelet, amelyik az almafeldobást reprezentálná. (Hogyan cseréljünk meg kezeinkben 2 teli poharat? (adatcserebere) című fejezet)
import java.util.Random;
public class Main {
public static void main(String[] args) {
int [] tomb = new int[10];
Random rnd = new Random();
for(int i = 0; i < tomb.length; i++){
tomb[i] =
rnd.nextInt(50) + 1;
System.out.print(tomb[i] + " ");
}
System.out.println();
for(int i = 0; i <= tomb.length - 1;
i++){
for(int j = i
+ 1; j <= tomb.length - 1; j++){
if(tomb[i] > tomb[j]){
int tarolo = tomb[i];
tomb[i] = tomb[j];
tomb[j] = tarolo;
}
}
System.out.print(tomb[i] + " ");
}
}
}
Végeredmény (például):
34 20 50 18 31 21 15 39 35 10
10 15 18 20 21 31 34 35 39 50
Fontos szempont, hogy a lehetséges elemcsere az utolsó előtti elemig tart (tomb.length - 1). Ha ezt nem vesszük figyelembe, hibaüzenetet (tömbindex-túllépési kivételt) kapunk, ami nagyon fájdalmas lesz:
Exception in
thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at Main.main(Main.java:16)