Arrays vergleichen

123michi19

Lt. Junior Grade
Registriert
Okt. 2014
Beiträge
316
Hey Leute,

ich stelle mir immer wieder eine Frage :-) Wie schaffe ich es, ein initalisiertes Array anzusprechen. Folgendes Beispiel:

int [] werte = {2,6,5,7};

Angenommen ich möchte zwei Werte miteinander vergleichen, dann hätte ich ja die Möglichkeit:

Code:
if (werte[0]>werte[1])
{
.....
}

usw.

Aber ein Array kann ja beliebig lang sein, also gibt es bestimmt eine andere Möglichkeit dieses Problem zu lösen? Ich kann ja nicht jeden Wert einzeln mit werte[0] auflisten?


Vielen Dank für Eure Antworten :-)
 
Über beide Arrays iterieren und die Werte vergleichen.

Edit: Ach so, nur ein Array. Dann nur eine Schleife ;)
 
Zuletzt bearbeitet:
Guck dir doch erstmal das "1x1" der Programmiersprache an die dich interessiert. Hast du mal bei Google nach "Programmiersprache" + array gesucht?
 
Das Zauberwort heisst :

"Schleife"

aber falls du die Werte sortieren willst, gibt es natürlich auch Sortierfunktionen.

Du solltest auf jeden Fall ein Tutorial im Internet suchen für die Programmiersprache die du nutzt.
 
@MiniM3: Es ist nicht immer sinnvoll gleich zu vorgefertigen Funktionen zu greifen, wenn mal es lernen möchte. Der Weg ist das Ziel ;-)
 
Dafür musst du eine Zählschleife benutzen ;)
Wir haben den Indexwert i, welcher in jedem durchlauf hochgezählt wird, und eine abfrage, wann die schleife fertig sein soll.
Beispiel:
Code:
for(int i = 0; i < werte.length-1; i++)
{
    if(werte[i] < werte[i+1])
    {
         ...
    }
}
Das -1 ist dazu da, damit man keine Werte außerhalb des Arrays abrufen kann.
 
Vielen Dank für Eure Antworten. Ich weiß, dass es Bibliotheksfunktionen gibt, aber diese dürfen im 1. Semester noch nicht verwendet werden (was ich persönlich auch gut finde)

Ich war natürlich in der Zwischenzeit nicht untätig und habe mich an dem Code versucht:

Code:
/*
a) Schreiben Sie ein Programm, welches ein Integer-Array der Größe nach sortiert.
Hinweis: Kurzbeschreibung eines Sortieralgorithmus (findet man in der Literatur unter dem Namen
Bubblesort):
Sortieren Sie immer paarweise über alle Elemente eines Arrays mit n Elementen (also erst array[0]
und array[1], dann array[1] und array[2] usw. bis array[n-2] und array[n-1]). Stellen Sie fest, ob dabei
tatsächlich (mindestens) ein Vertauschen stattgefunden hat. Wenn ja, dann fangen Sie wieder von
vorne an. Das machen Sie so oft, bis Sie das erste Mal beim paarweisen Sortieren über das ganze
Array keinen einzigen Tausch mehr vornehmen mussten. Dann ist das Array sortiert. 
*/

/*Bubblesort.java*/
public class Bubblesort
{
	public static void main (String[]args)
	{
	int [] werte = {12,5,4,13};
	
		for (int i=0; i<werte.length;i++)
		{
			if(werte[i] <= werte[0])  
			{
				System.out.println (werte[i]);
			}
			else
			{
				werte[i] = werte[0];
			}
			
		}
	}
}

Das einzige Problem was hier jetzt auftritt und mir selber komisch vorkommt, ist der Punkt: werte = werte[0];
Hier möchte ich im halt die Anweisung geben, dass er den aktuellen Wert (also an der Stelle i) an den Anfang setzen soll, gelingt mir aber noch nicht. Hättet ihr da noch einen Lösungsvorschlag?


Besten Dank ;-)
 
Mein Tipp an dich: Geh die Schleife runde für runde auf dem Papier durch und schreib dir aus, wie sich deine Liste dabei verändert...

Wie PHuV schon schrieb, machst du dir mit deiner Implementierung die Liste kaputt und hast sie dann auch noch nicht sortiert. Das "Warum" wird dir nach dem de-buggen auf dem Papier klar werden. Das "Wie dann" kommt automatisch :)
 
Zurück
Oben