BubbleSort-Methode

_Paranormal

Aktives Mitglied
Hallo, ich habe ein kleines Problem mit meiner BubbleSort-Methode.
Das Programm soll zufällige Uhrzeiten erstellen und diese dann mit Bubblesort sortieren.

Java:
import java.util.*;

class TestTime {

  static Random random = new Random(12345);

  public static void main(String[] args) {
    int n;
    try {
      n = Integer.parseInt(args[0]);
    } catch (ArrayIndexOutOfBoundsException e) {
      System.out.println("Aufruf: TestTime Arraygroesse");
      return;
    } catch (NumberFormatException e) {
      System.out.println("n muss ganze Zahl sein");
      return;
    }
    Time[] a = new Time[n];
    for (int i = 0; i < a.length; ++i) {
      // zufaellige Initialisierung von Stunde und Minute
      a[i] = new Time(random.nextInt(24), random.nextInt(60));
    }
    System.out.println("Vor Sortieren:");
    SomeUtilities.print(a);
    SomeUtilities.bubbleSort(a);
    System.out.println();
    System.out.println("Nach Sortieren:");
    SomeUtilities.print(a);
  }

}

Java:
class SomeUtilities {

  static void bubbleSort(Time[] a) {
  	  for (int i = 0; i < a.length; --i) {
  	  	  for (int j = 0; j < a.length; ++j) {
  	  	  	  if (a[j] > a[j+1]) {
  	  	  	  	  a = a[j];
  	  	  	  	  a[j] = a[j+1]; 
  	  	  	  	  a[j+1] = a;
  	  	  	  }
  	  	  }
  	  }
  }
  	  	  	  
  static void print(Time[] a) {
    for (Time t: a) {
      System.out.println(t + "  ");
    }
  }

}


Der Compiler meckert bei der Zeile 6 in der Klasse SomeUtilities wegen des > Operators. Außerdem in Zeile 7 wegen [ und in Zeile 8 passt ihm das a nicht.

Wäre nett, wenn mir jemand helfen könnte :) Danke
 

Volvagia

Top Contributor
Du kannst nur primitive Typen per > vergleichen. a ist ein Array, du kannst eine einzelne Variable (a[j]) nicht in eine Array-Variable kopieren. In Zeile 9 das Selbe nur umgekehrt.
 

_Paranormal

Aktives Mitglied
Mh. Also den Vergleich könnte man dann mit equals(..) machen, oder?

Aber das mit dem a versteh ich nicht ganz. Muss ich dafür eine andere Variable deklarieren?
 

Volvagia

Top Contributor
Natürlich.
Folgendes geht ja auch nicht:

Java:
String string = "String";
Scanner scanner = new Scanner(System.in);
string = scanner;

Mit equals kannst du aber nicht lexographisch ordnen. Da Time aber von Date erbt, hat es natürlich auch #getTime(), die eine long liefert.
 

Final_Striker

Top Contributor
Dein Vergleich ist wie oben schon gesagt falsch.
Du kannst die Time-Objekte nicht einfach so mit dem >-Operator miteinander vergleichen. Was du aber machen kannst, ist z.B. die Millisekunden der Objekte miteinander vergleichen.

Java:
if (a[j].getTime() > a[j+1].getTime()) {
 

_Paranormal

Aktives Mitglied
Das bringt mir doch aber nichts, wenn ich zum Beispiel 14:05 Uhr habe und 10:52 Uhr. Ich brauche hier keine Sekunden zu vergleichen, lediglich nur die Stunden und Minuten ^^
 

Final_Striker

Top Contributor
Wie kannst du Tage und Stunden miteinander vergleichen? Gar nicht. Du musst beide zuerst auf eine gemeinsame Einheit bringen, was eben Millisekunden sind.

Tage in Millisekunden umrechnen.
Stunden in Millisekunden umrechnen.

Jetzt kannst du die beiden vergleichen.
 

Final_Striker

Top Contributor
Das ist doch egal ob eine Minute, Stunde, Tag oder Jahr ist. Der Vergleichsablauf ist immer identisch. Beide Zeitpunkte in Millisekunden umrechnen und dann vergleichen.
 

Landei

Top Contributor
Deine Schleifen sind verkorkst: [c]for (int i = 0; i < a.length; --i) [/c] zählt rückwärts statt vorwärts. Außerdem verwendest du i nirgendwo im Schleifeninnern. Schau dir mal den Pseudocode bei Tante Wikipedia an: Bubblesort ? Wikipedia
 

_Paranormal

Aktives Mitglied
Also das Array dürfte nur aus Zahlen bestehen, aus int hour und int minute. Dürfte doch dann gehen?

Ah, vllt eher valueOf?
 
Zuletzt bearbeitet:

Volvagia

Top Contributor
Nur aus Minuten. Wie Striker schon sagte, du musst auf eine gemeinsame Einheit umrechnen. Und um Komazahlen wenn möglich zu unterbinden ist das immer die kleinste.
Wenn du schauen willst, ob 1 Kilometer oder 900 Meter größer ist, schreibst du ja auch nicht Math.max(1, 900), sondern rechnest erst alles in Meter um.
 
Ä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
R BubbleSort Java Basics - Anfänger-Themen 6
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
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
T Rekursive Methode Java Basics - Anfänger-Themen 13
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
Leyla Spezifischte Methode Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
M Methode sperren bis ein Kriterium erfüllt wurde Java Basics - Anfänger-Themen 3
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
til237 Iterative Methode in rekursive Methode umschreiben Java Basics - Anfänger-Themen 4
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
D next() Methode mehrfach verwenden Java Basics - Anfänger-Themen 1
Ostkreuz Methoden Von Dezimal zu Hexadezimal Methode toHex Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
M Methoden Methode 'wiederhole' nicht gefunden (Uebersetzungsfehler) Java Basics - Anfänger-Themen 1
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26

Ähnliche Java Themen

Neue Themen


Oben