2 Arrays vergleichen u. das Array zurückgeben, welches kleinsten Wert beinhaltet.

elisa098

Mitglied
Hallo,
die Aufgabe ist:"Vergleiche 2 Arrays u. es soll das Array zurückgegeben werden, welches kleinsten Wert beinhaltet -> mit Methode small;
Bsp. falls a={1,4,5,7,-6} und b={1,5,7,9,-9}, so wird b zurückgegeben.
Das ist mein bisheriger Code, leider komme ich aber nicht weiter:
Danke im Voraus!
public static void main(String[] args) {


int [] a= {1,4,5,7,-6};


int [] b= {1,5,7,9,-9};


System.out.println(small(a,b));

}


public static int small (int[]a, int []b) {



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

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

if(a<b[j]) {

return a;

}else {

return b;

}

}


}}
 

KonradN

Super-Moderator
Mitarbeiter
Erst einmal eine generelle Regel:

Es ist immer falsch, wenn Du ein Konstrukt hast mit einer Schleife, die dann ein if enthält mit return Anweisungen im if und else Block.
Ist ja auch logisch - die Schleife wird im ersten Durchlauf immer sofort beendet.

Dann eine Bitte: Code bitte immer in Code Tags posten - dazu einfach den Knopf </> links oberhalb des Eingabebereiches nutzen. (Ansonsten werden Code-Teile als Darstellungsanweisungen ausgewertet. Bei Dir wird z.B. das [i] als Anfang der kursiven Darstellung gewertet.)

Zwei wichtige Tipps zur Lösung von solchen Aufgaben:
a) Versuche immer, die Aufgaben so zu formulieren, dass klar ist, was getan werden muss. Also wirklich deutlich mehr Informationen einarbeiten! Dazu gibt es mehrere Wege. Was immer hilft ist, die Problematik selbst durch zu spielen. Wenn Ich Dir zwei Zahlenreihen gebe: Wie kannst Du das machen? Wie gehst Du vor?
Wenn ich wissen will, welche Zahlenreihe das kleinste Element hat, dann ist es für mich naheliegend, einfach von jeder Zahlenreige das kleinste Element zu suchen und diese beiden dann zu vergleichen.

So Ideen kommen aus meiner Sicht am einfachsten, wenn man es wirklich durchspielt!

b) Dann teile die Aufgabe auf (Divide and Conquer - Teile und herrsche!). Wie die obrige Regel schon zeigt: Es ist schwer, das eine saubere Logik zu bauen, wenn man mehrere Dinge auf einmal versucht zu beachten. Und Du hast dann Code, der auch schwer zu verstehen ist - zwei verschachtelte Schleifen und da dann noch ein if ... Das sind Komplexitäten, die man versucht zu vermeiden. (Klingt evtl. am Anfang unwahrscheinlich, aber genau so ist es! Das Problem ist nicht, dass man so Code nicht versteht ... gerade mit viel Erfahrung versteht man so Code relativ einfach. Aber man will den später auch gut testen können und man will Code ohne nachzudenken lesen können. Und für Anfänger ist das, was für Profis "normal" ist, schnell existenziell!)

Der ganze Code kann also bei Dir sein:
minAusA := Minimum aus Array a
minAusB := Minimum aus Array b
Wenn minAusA < minAusB
  • dann: Gib a zurück
  • sonst: Gib b zurück

Das ist doch so beschrieben einfach. Und das kann man 1:1 in Code umsetzen und der Code ist dann auch direkt lesbar.
Dadurch, dass der Code so unterteilt wird, wird auch der Java Code einfach zu lesen sein.
 

elisa098

Mitglied
Vielen Dank und wie kann man nochmal das Minimum aus einem Array bestimmen?
ich habe versucht den Code nochmal zu schreiben, leider funktioniert es noch nicht, kannst du zeigen, wie du ihn schreiben würdest. Das wäre super.
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Code:
gefundenesMinimum := erstes Element des Arrays
für jedes Element e aus dem Array wiederhole
    falls e < gefundenesMinimum
        gefundenesMinimum := e
Am Ende befindet sich in gefundenesMinimum das Minimum :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Werte der Ausgabe eines Arrays in einen Wert schreiben, wo die Werte addiert werden. Andere Programmiersprachen 14
E jede 4. Zahl innerhalb eines Arrays addieren Andere Programmiersprachen 6
E Minimum eines Arrays ausgeben Andere Programmiersprachen 2
Baker C++ - Eingabe soll auf beliebigen Wert des Arrays zutreffen Andere Programmiersprachen 4
Anfänger2011 Performance bei riesigen, mehrdimensionalen Arrays Andere Programmiersprachen 2
noah1407 Array vergleichen Andere Programmiersprachen 16
T Falscher short Specifier löscht Inhalt von char Array Andere Programmiersprachen 20
E Fehler in Array-Methode Andere Programmiersprachen 2
E ganzes Array zurückgeben, wie? Andere Programmiersprachen 7
W for-Schleife gibt zweidimensionales Array falsch aus Andere Programmiersprachen 1
W Array in C++ ausgeben funktioniert nicht Andere Programmiersprachen 12
I Dynamischen Array in C++ Andere Programmiersprachen 5
J Multidimensionales Array in Python Andere Programmiersprachen 11
krgewb Zweidimensionales Array in C# Andere Programmiersprachen 2
D Zeiger auf Array Andere Programmiersprachen 9
S Array erweitern c++ Andere Programmiersprachen 0
J foreach mit reference verändert array Andere Programmiersprachen 0
J Pointer auf char Array Andere Programmiersprachen 1
D [C] Array Auswahl und Wert Zuweisung Andere Programmiersprachen 4

Ähnliche Java Themen

Neue Themen


Oben