Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Array sortieren (http://www.informatikerboard.de/board/thread.php?threadid=2089)


Geschrieben von Mike04 am 21.01.2015 um 18:34:

  Array sortieren

Meine Frage:
Hey Leute,

ich soll eine Aufgabe so programmieren, dass ein unsortiertes Array am Ende der Größe nach sortiert ausgegeben wird. Ich finde aber meinen Fehler nicht und brauche dringend Eure Hilfe :-)

Vielen Dank

Meine Ideen:
Mein Code:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
public class BubbleSort 
{
	public static void main (String[]args)
	{
		int [] werte = {2,1,7,6};
		for (int i=0; i<werte.length;i++)
		{
			for (int j=0; j<i;j++)
			{
				if (werte [j] > werte [j+1]) // Wenn 2 größer 1  
				{
					System.out.println(werte[j]);
				}	
				else
				{
					int speicher;
					speicher = j;
					werte [j] = werte [j+1];
					werte[j+1] = speicher;
				}
			}
		}
	}
}



Geschrieben von eulerscheZahl am 21.01.2015 um 18:44:

 

Du musst in der inneren Schleife auch über das ganze Array iterieren. Und bei der Vertauschung hast du nicht sauber gearbeitet.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
public static void main(String[] args) {
	int[] werte = { 8, 2, 1, 7, 6 };
	for (int i = 0; i < werte.length; i++) {
		for (int j = 0; j < werte.length - 1; j++) {
			if (werte[j] > werte[j + 1]) // Wenn 2 größer 1
			{
				int speicher;
				speicher = werte[j];// j;
				werte[j] = werte[j + 1];
				werte[j + 1] = speicher;
			}
		}
	}
	System.out.println(Arrays.toString(werte));
}



Geschrieben von Mike04 am 21.01.2015 um 18:53:

 

Besten Dank, aber die letzte Zeile ist mir unklar.

Wo ziehst du das Array.toString her?



Geschrieben von eulerscheZahl am 21.01.2015 um 18:55:

 

Das gibt einfach das Array aus.
Benötigt import java.util.Arrays;.
Und es heißt Arrays.toString().



Geschrieben von Mike04 am 21.01.2015 um 18:57:

 

Mich wundert es nur, weil mir da ein Fehler angezeigt wird?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
public class BubbleSort
{
	public static void main(String[] args) 
	{
		int[] werte = { 8, 2, 1, 7, 6 };
		for (int i = 0; i < werte.length; i++) {
			for (int j = 0; j < werte.length - 1; j++) {
				if (werte[j] > werte[j + 1])
				{
					int speicher;
					speicher = werte[j];// j;
					werte[j] = werte[j + 1];
					werte[j + 1] = speicher;
				}
			}
		}
	System.out.println(Arrays.toString(werte));
	}
}



Geschrieben von eulerscheZahl am 21.01.2015 um 18:58:

 

Hast du das import berücksichtigt?



Geschrieben von Mike04 am 21.01.2015 um 18:58:

 

Sorry, mein Fehler. Hat sich erledigt :-)

Danke für die Hilfe ;-)


Forensoftware: Burning Board, entwickelt von WoltLab GmbH