Odwracanie elementów w tablicy

Odwrócenie elementów w tablicy to zamiana ich miejscami. Ostatni element staje się pierwszym, pierwszy ostatnim, przedostatni drugim, drugi przedostatnim itd. Chcemy napisać metodę, która odwróci nam wszystkie elementy w przekazanej jako parametr tablicy liczb całkowitych.
/**
 * Odwracanie elementów w tablicy
 * @author kodatnik.blogspot.com 
 */ 
public class OdwracanieElementow {
 
 // metoda odwraca elementy w przekazanej jako parametr tablicy
 public static void odwroc(int[] wejscie) {
  
  // indeks pierwszego elementu
  int poczatek  = 0;          
  // indeks ostatniego elementu
  int koniec = wejscie.length-1;
  
  // dopóki indeks początkowy jest mniejszy od indeksu końcowego
  while (poczatek < koniec) {
   // zamieniamy elementy
   int pomoc = wejscie[poczatek]; 
   wejscie[poczatek]  = wejscie[koniec]; 
   wejscie[koniec] = pomoc;
     
   // przesuwamy się w kierunku środka wektora zwiększając i zmniejszając odpowiednio indeksy
   poczatek++;
   koniec--;
  }
 }
 
 // metoda wyświetla zawartość tablicy przekazanej jako parametr na ekranie
 public static void pokazTablice(int[] wejscie) {
  // każdy element znajdujący się w tablicy wyświetlamy na ekranie
  for(int x : wejscie) System.out.print (x + " ");
  System.out.println ();
 }

 public static void main(String[] args) {
  // tworzymy tablicę wypełniając ją od razu danymi
  int[] tablica = {4, 6, 1, 2, 3, 8, 7, 9, 5};
  
  // wyświetlamy tablicę na ekranie
  pokazTablice(tablica);  
  
  // odwracamy tablicę
  odwroc(tablica);

  // wyświetlamy odwróconą tablicę na ekranie
  pokazTablice(tablica);  
 }
}
Uruchomiona aplikacja:
4 6 1 2 3 8 7 9 5 
5 9 7 8 3 2 1 6 4 
Powyższą metodę można przeciążyć, tworząc metodę odwracającą tylko fragment tablicy (elementy od indeksu początkowego do indeksu końcowego przekazanego jako parametr). Poniżej przeciążona wersja metody.
// metoda odwraca fragment tablicy (od indeksu poczatek do indeksu koniec
 // w przekazanej jako parametr tablicy)
 public static void odwroc(int[] wejscie, int poczatek, int koniec) {
  
  // dopóki indeks początkowy jest mniejszy od indeksu końcowego
  while (poczatek < koniec) {
   // zamieniamy elementy
   int pomoc = wejscie[poczatek]; 
   wejscie[poczatek]  = wejscie[koniec]; 
   wejscie[koniec] = pomoc;
     
   // przesuwamy się w kierunku środka wektora zwiększając i zmniejszając odpowiednio indeksy
   poczatek++;
   koniec--;
  }
 } 
Wywołanie odwroc(tablica, 3, 6) spowoduje odwrócenie elementów od indeksu trzeciego do szóstego.
4 6 1 2 3 8 7 9 5 
4 6 1 7 8 3 2 9 5 
Przeciążanie metod to tworzenie metod o takich samych nazwach ale o innej liście parametrów (pod uwagę brana jest ilość parametrów oraz ich typ).


3 Komentarze - Odwracanie elementów w tablicy

Anonimowy pisze...

Super :) Można też użyć metody swap(), ale jest ok.

Anonimowy pisze...

Jak zmienić kod żeby użyć stringów ? Zamiast int , string ?

obiady domowe na dowóz Jaworzno pisze...

blog dla fachowców

Prześlij komentarz

Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)

Popularne posty