Zum Inhalt springen

Perpetuum

Mitglieder
  • Gesamte Inhalte

    2
  • Benutzer seit

  • Letzter Besuch

  1. Hi, was alternierend genau bedeutet weis ich auch nicht genau. Doch ich habe eine Definition im Internet gefunden die lautet: Ausserdem muss ein alternierendes Array mindestens 3 Elemente haben. Nach dieser Definition sind dann folgende Array alternierend: 1 2 1 2 1 2 und folgende nicht 2 1 1 1 2 2 Hab das ganze dann so rekursiv gelöst: /** * Hilfsmethode zur Methode 'altmain()'. Prüft letztes und vorletztes * Element ob >= oder <= und gibt so den Startwert für die Alternierung * vor. * @param a : Array * @return boolean : true falls Elemente alternierend sortiert sind */ public static boolean alt(int[] a, int laenge){ // Nur dann wenn Array mindestens drei Elemente enthält. if(laenge > 1 && a[laenge] > a[laenge-1]){ altmain(a, laenge, 1); }else if(laenge > 1){ altmain(a, laenge, 0); } System.out.print("| - "); return false; } /** * Methode prüft ob Elemente (vom Typ int) in einem Array alternierend * sortiert sind. * @param a, laenge, i : Array und Länge vom Array, Startwert * @return boolean : true falls Elemente alternierend sortiert sind */ public static boolean altmain(int[] a, int laenge, int i){ // Basisfall if(laenge == 0){ System.out.print("| JA "); return true; } if(i == 1){ // Rekursionsfall 1 if(a[laenge-1] < a[laenge]){ return altmain(a, laenge-1, 0); } }else{ // Rekursionsfall 2 if(a[laenge-1] > a[laenge]){ return altmain(a, laenge-1, 1); } } System.out.print("| - "); return false; }[/PHP]
  2. Hi, wir haben eine Aufgabe bekommen in der wir drei rekursive Methoden schreiben sollen, die ein mit zufälligen natürlichen Zahlen belegtes Array überprüfen ob die Elemente aufsteigend, absteigend oder alternierend geordnet sind. Aufsteigend oder Absteigend ist ja kein Problem... aber bei alternierned habe ich eine nicht ganz so optimale Lösung gefunden (alternierend wäre z.B. 1 2 1 1 1 1 2): public static boolean alt(int[] a, int laenge, int i){ // Basisfall if(laenge == 0){ System.out.print("| JA "); return true; } if(i == 1){ // Rekursionsfall 1 if(a[laenge-1] <= a[laenge]){ return alt(a, laenge-1, 0); } }else{ // Rekursionsfall 2 if(a[laenge-1] >= a[laenge]){ return alt(a, laenge-1, 1); } } System.out.print("| - "); return false; }[/PHP] Die Methode funktioniert auch, nur muss ich extern bestimmen ob das letzte Array Element "<=" oder ">=" dem vorletzten Element ist umso die Richtung zu bestimmen. Allerdings sollte die Methode "selbstständig" arbeiten und nicht von außen auf ein zusätzliches Script angewiesen sein. Hat jemand eine Idee wie man das Problem lösen kann? Vieleicht euch einen ganz anderen [b]rekursiven[/b] Vorschlag?

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...