Hvordan Reverse en rekke numrene med Java

Reversering av innholdet av en Java-matrise er et vanlig oppgave, og krever ikke mye kode. Det er forskjellige mulige tilnærminger til å reversere funksjoner orden, men det enkleste er å arbeide fra hver ende av rekken mot sentrum, bytte hvert par av elementer i omdreining. For å bytte element stillinger innenfor en rekke, må du kopiere rundt halvparten av dem i midlertidige variabler som du går, fordi så snart du flytte et element til en annen posisjon, vil du ha overskrevet et annet element.

Bruksanvisning

1 Forbered array. Hvis du ikke allerede har en rekke objekt i programmet, opprette en nå:

// Oppretter en matrise og angi lengden

int [] someNumbers = new int [13];

// Instantiate array med noen elementer

for (int i = 0; i <someNumbers.length; i ++)

someNumbers [i] = i;

Dette eksemplet bruker primitive typen ints, men metoden fungerer for matriser av alle typer, inkludert stedene. For dette eksempelet inneholder matrisen utgangspunktet tall som går fra null og oppover.

2 Opprette variabler å holde orden på din posisjon når du flytter sammen matrisen fra begge ender:

// Man begynner i den første stilling, den andre i den siste

int leftPosn = 0;

int rightPosn = someNumbers.length-1;

Algoritmen skal bruke en løkke, vil hver iterasjon som involverer bytte to elementer, som begynner ved å bytte den første og siste, deretter fortsetter mot midten.

3 Lag en løkke for din algoritme. Du kan bruke hva slags løkke gjør mest fornuftig for deg, men i dette tilfellet det enkleste alternativet er en stund sløyfe:

// Sjekke om venstre og høyre stillinger har fortsatt å nå midten

while (leftPosn <rightPosn)

{

// Løkke innhold går her

}

Sløyfen vil fortsette så lenge som venstre og høyre tellere ennå ikke har nådd midten av tabellen.

4 Bytte hvert par av elementer i omdreining. Inne mens sløyfe (på "loop innhold går her"):

// Kopiere lengst til venstre element i paret inn i en ny midlertidig variabel

int tempCopy = someNumbers [leftPosn];

// Kopiere lengst til høyre element inn i venstre posisjon

someNumbers [leftPosn] = someNumbers [rightPosn];

/ * Kopiere originalen lengst til venstre element fra den midlertidige variable

inn lengst til høyre * /

someNumbers [rightPosn] = tempCopy;

Den midlertidige variable trenger bare å være tilgjengelig i løpet av hver iterasjon av løkken.

5 Flytt posisjonstelleren variabler langs hver gang løkken utfører. I mens loop kodeblokk (etter swap):

// tilvekst eller redusere stillinger for å jobbe videre mot midten

leftPosn ++;

rightPosn--;

Teste koden ved å kjøre programmet og gi ut innholdet i matrisen som følger (etter mens loop):

for (int j = 0; j <someNumbers.length; j ++)

System.out.println (someNumbers [j]);

Hint

  • Algoritmen fungerer for matriser med både like og ulike lengder, som for odde lengder midtelementet ikke trenger å bli beveget i det hele tatt.
  • Vær forsiktig når du bruker looper, som en enkel feil kan føre til en uendelig loop, noe som gjør programmet krasjer.