Gyakorlati alapok
Válogatások
Szétválogatás egy tömbbe
Nem keletkezik külön eredménytömb, hanem az eredeti tömb elemei lesznek a szétválogatás szerint valamilyen módon csoportosítva. Legyen mondjuk a páros számok az alaptömb "bal" oldalára, azaz a kisebb indexű oldalra kerülnek. Ehhez számos segédváltozót kell bevezetnünk:
int elso = 0;
int utolso = tomb.length-1;
int seged = tomb[elso];
Az elso változó tehát elölről (balról) felfelé, az utolso változó pedig jobbról lefelé kezdi a számolást. A főciklus a következő feltétel teljesülése között tart:
while(elso < utolso)
Ezután a további feltételek teljesülése esetén (az elso indexű szám NEM páros, az utolso indexű szám NEM páratlan), az elemek cseréje következik. Nézzük meg a futtatható Java-kódos változatot:
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random random = new Random();
int[] tomb = new int[10];
for(int i = 0; i < tomb.length; i++){
tomb[i] = random.nextInt(50) + 1;
System.out.print(tomb[i] + " ");
}
System.out.println();
int elso = 0;
int utolso = tomb.length-1;
int seged = tomb[elso];
while(elso < utolso) {
while(elso < utolso && tomb[utolso] %
2 == 0) {
utolso--;
}
if(elso < utolso) {
tomb[elso] =
tomb[utolso];
elso++;
while(elso <
utolso && tomb[elso] % 2 !=0) {
elso++;
}
if(elso <
utolso) {
tomb[utolso] = tomb[elso];
utolso--;
}
}
}
tomb[elso] = seged;
for(int i = 0; i < tomb.length; i++){
System.out.print(tomb[i] + " ");
}
}
Végeredmény (például):
34 3 18 31 23 38 17 36 44 24
17 3 23 31 34 38 18 36 44 24