Použijeme dva indexy
i a
j do pole
p.
Indexem
i budeme postupovat zleva
doprava a indexem
j zprava doleva.
V jednom kroku (jedné iteraci cyklu
for)
prohodíme prvky na pozicích
i a
j a indexy posuneme
(
i zvětšíme o 1
a
j zmenšíme o 1). To provádíme tak
dlouho, dokud je
i menší než
j. Pokud má pole lichý počet prvků,
bude na konci cyklu
i rovno
j, má-li pole sudý počet prvků, bude
na konci cyklu
i větší než
j.
static void otoc( int[] p ) {
for( int i = 0, j = p.length - 1; i < j; i++, j-- ) {
int pp = p[i];
p[i] = p[j];
p[j] = pp;
}
}