BubbleSort

Rakash

Mitglied
Hi Leute!
Ich hab mich mal wieder aufgerafft und den Java-Editor angeworfen und hänge nun etwas. Mir geht es darum Sortierverfahren, wie wir Sie im Unterricht mehr oder minder "gut" behandelt haben, besser nachzuvollziehen. Und für den Anfang habe ich mir deshalb das BubbleSort-Verfahren etwas genauer angesehen. Ich weiß, dass es nicht besonders effizient ist, doch ist es recht einfach - so sagt man zumindest.
Nur leuchtet mir nicht wirklich ein - in Anbetracht des Quelltextes - wie die Wahrheitswerte dort fungieren. Vielleicht kann mir einer mal eine "Komplett-Erläuterung" des Qelltextes geben.
Wir hatten in der Schule einen eigenen entworfen, der sehr ähnlich wirkt - nur ohne Wahrheitswerte ... aber ... schaut einfach mal drauf:

Java:
public class Sorter{
  public static void main(String[] args){
    int[] array={8, 9, 5, 2, 1, 3, 4, 7, 6,};
    new Sorter().bubbleSort(array);
    for(int i=0; i<array.length; i++){
      System.out.println(array[i]);
    }
  }
 public void bubbleSort(int[] array){
   int arrayLength = array.Length;
   boolean match = false;
   for(int i=0; i < arrayLength - 1 && !match; i++){
     match = true;
     for(int j = arrayLength - 1; j > i; j--){
       if (array[j-1] > array[j]){
        swap(array, j-1, j);
        match = false;
       }
     }
   }
 }
 public void swap(int[]array, int pos1, int pos2){
  int temp = array[pos1];
  array[pos1] = array[pos2];
  array[pos2] = temp;
 }
}



Außerdem gibt der mir gerne einen Fehler aus, wenn es um "." geht. So auch hier. Dabei wäre es auch verdammt cool, wenn ihr mir mal erklären könntet, weshalb man da diesen "." überhaupt setzt?
Code:
Sorter.java:10:27: error: cannot find symbol
   int arrayLength = array.Length;
                          ^
  symbol:   variable Length
  location: variable array of type int[]
1 error
 

Rakash

Mitglied
Punktnotation

es muss array.length heißen

Und ich dachte, der zckt wegen dem Punkt rum. Blöde Leichtsinnsfehler. :D

Könntest du mir trotzdem einige Dinge dazu erzählen, vor allem, was mir das "new Sorter" und die Wahrheitswerte vermitteln? ... also mehr oder weniger Schritt für Schritt sagen, was passiert? ._.
Im Großen und Ganzen begreife ich es ja, aber die einzelnen Schritte leuchten mir eben nicht so ein.

Das mit der Punktnotation lasse ich grade auf mich wirken. :D
 

timbeau

Gesperrter Benutzer
Das "new Sorter" ist meines Erachtens völlig unnötig, vermeidet aber, dass die Methoden static sein müssen in dem er ein Objekt erstellt und auf diesem sofort die Methode aufruft.

Die Wahrheitswerte sagen dir, ob noch Vertauschungen nötig sind.
 

Rakash

Mitglied
Das "new Sorter" ist meines Erachtens völlig unnötig, vermeidet aber, dass die Methoden static sein müssen in dem er ein Objekt erstellt und auf diesem sofort die Methode aufruft.

Die Wahrheitswerte sagen dir, ob noch Vertauschungen nötig sind.

Ahhh. Verstehe.
Das erklärt auch die Verwendung von static ...

Und wenn wir uns die Schleifen angucken ... die eine Schleife durchläuft das Array von pos1 - arrayLength und die andere vom ende, also von arrayLegth bis pos1 (deshalb das j--); sehe ich das richtig?

@andgalf: danke für die seite. scheint mir recht brauchbar. :)
 
A

Andgalf

Gast
Und wenn wir uns die Schleifen angucken ... die eine Schleife durchläuft das Array von pos1 - arrayLength und die andere vom ende, also von arrayLegth bis pos1 (deshalb das j--); sehe ich das richtig?

Nicht ganz korrekt. Erstens läuft die innere Schleife ab array.lentgh-1, das liegt daran, dass ein Array bei pos 0 anfängt (die letzte stelle eines Arrays ist also immer die Größe des Arrays -1).
Und die innere schleife läuft nur bis i, also nur bis zur aktuellen Position der äußeren Schleife
 

Rakash

Mitglied
Nicht ganz korrekt. Erstens läuft die innere Schleife ab array.lentgh-1, das liegt daran, dass ein Array bei pos 0 anfängt (die letzte stelle eines Arrays ist also immer die Größe des Arrays -1).
Und die innere schleife läuft nur bis i, also nur bis zur aktuellen Position der äußeren Schleife

Ah verstehe. Klingt auch logisch, weil ja im Grunde nur mit einer einem Teil des Arrays stets weiter gearbeitet wird, da der größte Wert aufsteigt.
Na gut. Dann danke soweit. :)

Damit kann das Thema als abgeschlossen gelten. :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Generischer Bubblesort Java Basics - Anfänger-Themen 19
S BubbleSort für ArrayLists Java Basics - Anfänger-Themen 3
H Bubblesort-Algorithms Java Basics - Anfänger-Themen 14
I Bubblesort Java Basics - Anfänger-Themen 1
L Bubblesort in Batch Script Java Basics - Anfänger-Themen 15
D Bubblesort Java Basics - Anfänger-Themen 2
G Bubblesort Array der Größe 10 Java Basics - Anfänger-Themen 1
M Bubblesort ohne Array Java Basics - Anfänger-Themen 30
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
H Bubblesort-Zwei Integer auf Dekade vergleichen. Java Basics - Anfänger-Themen 6
R Erste Schritte Einsteiger-Video Bubblesort Bewertung Java Basics - Anfänger-Themen 11
D Array/Bubblesort Fehlermeldungen Java Basics - Anfänger-Themen 1
U BubbleSort Problem Java Basics - Anfänger-Themen 2
L Array und Bubblesort Java Basics - Anfänger-Themen 4
L Frage zu BubbleSort Algorithmus Java Basics - Anfänger-Themen 2
T BubbleSort Java Basics - Anfänger-Themen 9
O Bubblesort allgemeiner schreiben Java Basics - Anfänger-Themen 5
J Interface Bubblesort soll Arrays beliebiger Referenztypen sortieren können. Java Basics - Anfänger-Themen 5
N Mein Bubblesort sortiert mein Array nicht Java Basics - Anfänger-Themen 2
E BubbleSort Java Basics - Anfänger-Themen 2
J Erste Schritte Bubblesort Java Basics - Anfänger-Themen 6
G Array mit BubbleSort sortieren Java Basics - Anfänger-Themen 2
N Bubblesort Programm funktioniert nicht Java Basics - Anfänger-Themen 19
R BubbleSort Java Basics - Anfänger-Themen 4
R BubbleSort Java Basics - Anfänger-Themen 15
A BubbleSort Java Basics - Anfänger-Themen 7
B BubbleSort Java Basics - Anfänger-Themen 10
C Klassen BubbleSort was passiert mit dem Index ? Java Basics - Anfänger-Themen 2
B Sortiermethode bei Bubblesort Java Basics - Anfänger-Themen 15
G Bubblesort - Falsche Sortierung Java Basics - Anfänger-Themen 6
M Laufzeitanalyse Bubblesort Java Basics - Anfänger-Themen 7
T BubbleSort Java Basics - Anfänger-Themen 2
P BubbleSort-Methode Java Basics - Anfänger-Themen 18
M BubbleSort (Sortieralgorithmus) Java Basics - Anfänger-Themen 28
B Bubblesort Java Basics - Anfänger-Themen 70
G Bubblesort ohne Schleifen Java Basics - Anfänger-Themen 10
F Bubblesort, Insertsort Java Basics - Anfänger-Themen 2
K BubbleSort Hausaufgabe Java Basics - Anfänger-Themen 20
B Bubblesort-Algorithmus und Testklasse Java Basics - Anfänger-Themen 5
c_sidi90 Array mit Bubblesort sortieren Java Basics - Anfänger-Themen 8
B Java Bubblesort Java Basics - Anfänger-Themen 5
F Bubblesort---Frage von Anfänger Java Basics - Anfänger-Themen 2
E BubbleSort kleiner Fehler? Java Basics - Anfänger-Themen 14
B BubbleSort Java Basics - Anfänger-Themen 5
L Bubblesort: Exception in Thread "main" Java Basics - Anfänger-Themen 5
K Einfaches Bubblesort Java Basics - Anfänger-Themen 11
W Problem mit BubbleSort und Array Java Basics - Anfänger-Themen 10
Spin taschenrechner incl bubblesort Java Basics - Anfänger-Themen 5
G Bubblesort Java Basics - Anfänger-Themen 2
Binary.Coder Bubblesort in einfachen unmissverständlichen Sätzen Java Basics - Anfänger-Themen 2
B Bubblesort Verfahren Java Basics - Anfänger-Themen 2
C Bubblesort Java Basics - Anfänger-Themen 5
I BubbleSort-Algorithmus Java Basics - Anfänger-Themen 8
G Bubblesort Java Basics - Anfänger-Themen 23
G Bubblesort Java Basics - Anfänger-Themen 15
kulturfenster BubbleSort Java Basics - Anfänger-Themen 7
T Bekomme Fehler mit Bubblesort Java Basics - Anfänger-Themen 2
T Zahlen mit Bubblesort sortieren Java Basics - Anfänger-Themen 2
D Bubblesort und Array Java Basics - Anfänger-Themen 6
T Bubblesort Java Basics - Anfänger-Themen 5
L Bubblesort funzt nicht Java Basics - Anfänger-Themen 3
N bubblesort Java Basics - Anfänger-Themen 4
T BubbleSort optimieren ??? Java Basics - Anfänger-Themen 26

Ähnliche Java Themen

Neue Themen


Oben