SelectionSort sortiert nicht richtig!

  • Themenstarter int christian_ = 0;
  • Beginndatum
Status
Nicht offen für weitere Antworten.
I

int christian_ = 0;

Gast
Hallo

Habe einen Selection sort implementiert. Er sortiert zwar aber ein paar Datensätze sind nicht dort wo sie hingehören.

Hier erst einmal die Methode.

Code:
 public void selection(Object[] array, int l, int r) {

    for (int i = l; i < r; i++) {
      int min = i;
      for (int j = i + 1; j <= r; j++) {
        if (array[j] != null || array[min] != null) {
          //überprüfen ob array[j] < als array[min ist]
          if (getComparator().compare(array[j], array[min]) < 0) {
            min = j;

          }
        }
        swap(array, i, min);
      }
    }
  }

Und die hier ein Teil der Sortierten Liste (als csv File). Sortiert ist sie in diesem Fall nach der ID. 1 Spalte.
Wie man sieht ist hier die ID 3 zwischen 6 und 7. Und die ID 2 zwischen 15 und 17.

Code:
1;NB Europe, UAB;Litauen;Vilnius;9308;A6.123
4;2ci - Caspar Confection Industrie;Frankreich;Duppigheim;67120;B5.237/436
5;3C GmbH;Deutschland;Mannheim;68161;B4.526
6;A Due Srl, Di Donato Squeri & C.;Italien;Ricco (Parma);43030;A4.101/300
3;1x1der Etiketten KIP GmbH;Deutschland;Neuenhaus;49828;A2.110
7;A&R CARTON Beer & Beverage Business Area  ;Deutschland;Bremen;28309;A5.407
8;A/S Vestfrost;Dänemark;Esboerg Ø;6705;A2.521
9;AAM Services;Rumänien;Floresti, Cluj;407280;B2.511
10;AB UK Ltd.;Großbritannien u. Nordirland;North Nottinghamshire;DN104DD;B2.337
11;AB Vickers;Großbritannien u. Nordirland;Burton;DE14 2PQ;B1.229
12;ABB Automation GmbH Unternehmensbereich Robotics  ;Deutschland;Friedberg;61169;B4.338/350d
13;ABB Automation Products GmbH;Deutschland;Alzenau;63755;B4.538
15;ACCUFLEX Industrial Hose, LTD;Vereinigte Staaten von Amerika;Canton, Michigan;48187;A2.138
2;1-CUBE;Tschechische Republik;Havl. Brod;580 01;B4.218
17;ACM GmbH;Österreich;Purkersdorf;3002;B5.423
16;ACLA WERKE GMBH;Deutschland;Köln;51065;A2.300
18;ACMI SPA;Italien;Fornovo Taro (PR);43045;A4.511/512
19;Ad-Mat;Vereinigte Staaten von Amerika;Johnson City;37601;A1.144
20;ADAPACK - Papeteries Du Souche;Frankreich;Anould;88650;B5.237/436
21;Adapt Marketing (Pty) Ltd.;Südafrika;Durban;3630;A1.237
22;Adbraintage;Spanien;St. Joan Despi;8970;B4.103/302
23;ADMERCHANDISING;Frankreich;Poisat;38320;B5.237/436
24;ADS;Frankreich;Saint-Ouen-Láumone;95310;A6.513
25;Advirmatic SRL;Italien;Castelfranco E. (MO);41013;A2.123
26;AEB SPA;Italien;Brescia;25134;B3.541
27;AERAQUE I.T. SRL;Italien;Stradella (PV);27049;B5.522
28;AES Laboratoire GmbH;Deutschland;Angelbachtal;74918;B4.523
29;AFRISO-EURO-INDEX GmbH;Deutschland;Güglingen;74363;B4.419
30;Agentur Schall;Österreich;Bergheim;5020;A2.528

Ich schaue jetzt schon seit 2 Tagen in den Code und weiss nicht was ich falsch mache. Vielleicht ist es ja nur ein kleines Problem und einer von euch sieht wo das problem liegt.

Gruß
Christian
 

Redfrettchen

Bekanntes Mitglied
Hi,
anstatt nur auf den Code zu schauen, musst du einfach mal nen Trockentest durchführen:

Code:
Ausgangsarray: int[] arr = {3,1,2};

selection(arr,0,2):
für i=0 bis 1:
für j=i bis 2:
i=0:
min = 0;
j=1:
true || true == true /* hier müsste dir auffallen, dass es recht sinnlos ist, ein Oder dazwischen zu setzen, es müsste 
                             && sein*/
->
1-3<0 == true -> min = 1
swap(arr,0,1) -> arr = {1,3,2}

j=2:
true || true == true
->
2-3<0 == true -> min = 2
swap(arr,0,2) -> arr = {2,3,1} // nicht wirklich, oder?

i=1:
min = 1;
j=2:
true || true == true
->
1-3<0 == true -> min = 2
swap(arr,1,2) -> arr = {2,1,3}

fertig -> arr = {2,1,3} // das ist nicht wirklich sortiert

Vielleicht wolltest du stattdessen:
Code:
public void selection(Object[] array, int l, int r) {
    for (int i = l; i < r; i++) { 
      int min = i; 
      for (int j = i + 1; j <= r; j++) { 
        if (array[j] != null && array[min] != null) { 
          //überprüfen ob array[j] < als array[min ist] 
          if (getComparator().compare(array[j], array[min]) < 0) { 
            min = j;
            swap(array,i,min);
          } 
        }
      } 
    } 
}
schreiben. Ich geb keine Garantie darauf, dass es funktioniert.
 
I

int christian_ = 0;

Gast
ich hab das so ausprobiert aber es kommt das gleiche heraus.
Ich werds einfach weiter probieren.
Danke für die Antwort.

Christian
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T SelectionSort Java Java Basics - Anfänger-Themen 1
F Java Selectionsort Java Basics - Anfänger-Themen 4
N SelectionSort ; Code erläutern Java Basics - Anfänger-Themen 13
A SelectionSort bringt keine konstanten Ergebnisse Java Basics - Anfänger-Themen 4
M Selectionsort Java Basics - Anfänger-Themen 5
T Methoden Selectionsort funktioniert nicht Java Basics - Anfänger-Themen 2
T Methoden selectionsort Java Basics - Anfänger-Themen 8
X Selectionsort macht Probleme Java Basics - Anfänger-Themen 2
S SelectionSort und InsertionSort Java Basics - Anfänger-Themen 1
A SelectionSort >InsertSort< Java Basics - Anfänger-Themen 4
A SelectionSort Java Basics - Anfänger-Themen 2
F Erste Schritte Zahlenreihe von Arraylist in 3erBlöcke sortiert in neue Arraylist Java Basics - Anfänger-Themen 2
I Sortiert eine HashMap nicht gleich wie eine ArrayList? Java Basics - Anfänger-Themen 1
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
M Collection.sort sortiert nicht Java Basics - Anfänger-Themen 7
I Klassen Eine ArrayList<Long>, die sich automatisch sortiert Java Basics - Anfänger-Themen 20
Hanschyo Quicksort sortiert von groß nach klein Java Basics - Anfänger-Themen 3
_0815_ Bestenliste (Sortiert) Java Basics - Anfänger-Themen 42
C Verkettete Liste - sortiert einfügen Java Basics - Anfänger-Themen 7
N InsertionSort sortiert erste Zahl im Array nicht mit? Java Basics - Anfänger-Themen 6
N Mein Bubblesort sortiert mein Array nicht Java Basics - Anfänger-Themen 2
J Array sortiert ausgeben Java Basics - Anfänger-Themen 9
C Sortiert programmieren? Java Basics - Anfänger-Themen 10
T TreeSet sortiert in ein anderes kopieren Java Basics - Anfänger-Themen 2
L Textfile mit StringTokenizer einlesen und sortiert ausgeben Java Basics - Anfänger-Themen 8
T JTable sortiert ausgeben Java Basics - Anfänger-Themen 13
S Liste mit Buchstabe sortiert befüllen Java Basics - Anfänger-Themen 3
P Array sortiert ausgeben Java Basics - Anfänger-Themen 25
E Collections HashSet - Ausgabe sortiert? Java Basics - Anfänger-Themen 3
S Objekte sortiert einfügen Java Basics - Anfänger-Themen 5
T Elemente sortiert in Liste einfügen Java Basics - Anfänger-Themen 10
B Arrays sortiert verbinden Java Basics - Anfänger-Themen 7
E Comparator sortiert falsch... Java Basics - Anfänger-Themen 2
A OOP Array wird ohne grund sortiert?! Java Basics - Anfänger-Themen 4
S Binärbaum prüfen, ob sortiert oder unsortiert Java Basics - Anfänger-Themen 6
J Überprüfung, ob Array aufsteigend sortiert Java Basics - Anfänger-Themen 6
N java.util.Arrays.sort Warum sind Leerzeichen vor alphabetischen Zeichen sortiert? Java Basics - Anfänger-Themen 12
G Programm sortiert falsch Java Basics - Anfänger-Themen 6
G Map-Implementation die nicht sortiert Java Basics - Anfänger-Themen 9
D HashMap sortiert ausgeben Java Basics - Anfänger-Themen 3
G Prüfen, ob Array aufsteigend sortiert ist Java Basics - Anfänger-Themen 7
Q TreeMap immer sortiert halten Java Basics - Anfänger-Themen 9
T Vector sortiert nicht richtig nach Wert Java Basics - Anfänger-Themen 6
F String in Array sortiert einfügen Java Basics - Anfänger-Themen 3
Q Zahlen sortiert in Array schreiben Java Basics - Anfänger-Themen 5
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
missy72 Erste Schritte (nicht) Deterministischer endlicher Automat Java Basics - Anfänger-Themen 9
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T scanner nicht erkannt Java Basics - Anfänger-Themen 3
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
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
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
Darkherobrine9 Import klappt nicht Java Basics - Anfänger-Themen 7
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben