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)
--- Bubblesort (http://www.informatikerboard.de/board/thread.php?threadid=625)


Geschrieben von Algo am 08.12.2009 um 19:30:

  Bubblesort

Hallo, ich hab hier den Bubblesort programmiert, aber das Aufrufen
in der main Funktion funktioniert nicht.
Was mache ich da denn falsch?

public class Bubblesort
{
public static void BubbleSort(int a[])
{
for(int i= a.length-1; i>0;i--)
{
boolean getauscht=false;

for(int j= 0; j>i;j++)
{
if(a[j]>a[j+1])
{
int h=a[j];
a[j]=a[j+1];
a[j+1]=h;

getauscht=true;
}
}
if(!getauscht) return;
}
}


public static void main(String[]args)
{
int j[]={10,23,98,34,2,98};

BubbleSort(int j[]);
}
}



Geschrieben von avebwl am 09.12.2009 um 16:39:

 

Hi Algo,

mit dem Aufruf "BubbleSort (j)" (anstatt "BubbleSort (int j[])") müsste die main-Methode funktionieren.

Gruß
Martin



Geschrieben von inff am 25.12.2009 um 22:08:

 

Hi Algo

ich denke der Fehler liegt bereits in der Methode "BubbleSort", in der 2.For-Schleife. Du setzt die Var. j = 0 und die schleife soll solange laufen wie j>i ist. i ist aber auf jeden fall größer 0. anders gesagt, du hast > statt < geschrieben.

Bei dem Vorschlag von avebwl bin ihc mir nicht sicher, ich kenn die grammatik nicht gut genug aber es stimmt warscheinlich auch.

und um jetzt noch ein wenig besserwisserisch zu wirken, wenn du die Varialble außerhalb der schleife deklarierst ist das speicherplatzsparend

hoffe ich hab geholfen
Frank



Geschrieben von Algo2 am 18.01.2010 um 14:34:

 

Ich hab das jetzt umgeändert, was vorgeschlagen wurde, aber er läuft immer noch nicht.
Mir wird nur folgendes angezeigt: [I@187aeca

Was stimmt denn da noch nicht?



Geschrieben von David_pb am 18.01.2010 um 15:53:

 

Wie sieht der aktuelle Code denn aus?

Anmerkung:
Zitat:
Original von inff
und um jetzt noch ein wenig besserwisserisch zu wirken, wenn du die Varialble außerhalb der schleife deklarierst ist das speicherplatzsparend


Meinst du sowas wie:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
for ( ; ; ) {
  int x = 10; 
}

// vs.

int x = 10;
for ( ; ; ) {
}


Das macht nämlich keinen Unterschied!


Forensoftware: Burning Board, entwickelt von WoltLab GmbH