| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: InsertSort sortiert nicht komplett im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo Habo, mein kleiner Algorithmus zum sortieren hat irgendwie noch ein Problem. Code: public static void insertSort(int Feld[]){ for(int ...
![]() |
| | #1 (permalink) |
| Registriert seit: 21.10.06 ![]() Likes: 0 | InsertSort sortiert nicht komplett Anzeige Hallo Habo, mein kleiner Algorithmus zum sortieren hat irgendwie noch ein Problem. Code: public static void insertSort(int Feld[]){
for(int j=2;j<Feld.length;j++){
int key = Feld[j];
int i = j-1;
while(i>0 && Feld[i]>key){
Feld[i+1] = Feld[i];
i = i-1;
}
Feld[i+1] = key;
}
} Irgendwelche Ideen warum? LG,weau |
| | |
| | #2 (permalink) |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 51 | Wieso machst du in der for-Schleife j=2 ? hab es jetzt nur überflogen, aber da du danach ja nur ein i = j-1 nimmst, wirst du i niemals = 0 haben und Feld[0] niemals erreichen |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 21.10.06 ![]() Likes: 0 | Ich hab schon mit mehreren j Werten rumgespielt, dass hat irgendwie keinerlei Effekte. |
| | |
| | #4 (permalink) |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 51 | Also wie schon erwähnt muss j = 1 sein und nicht j = 2. Meine Begründung vorhin war zwar falsch, aber dennoch ist es so, da du sonst erst ein Element zu spät mit dem Sortieren beginnst. Dann hast du aber noch einen Fehler in deiner while-Schleife, den man sehr schön sieht, wenn man dein Beispiel mal wirklich per Hand durchrechnet. Du sagst i>0. Das Problem ist nun, dass dass in deinem Beispiel der 2. Durchlauf der while-Schleife mit j = 2, i = 0, key = 28 nicht mehr stattfindet. Dadurch wird aber genau das 1. Element, also die 63 nicht mehr mit key verglichen. Mache also noch i >= 0 und das sollte funktionieren |
| | |
| | #6 (permalink) |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 51 | Ich kann dir für solche Fälle nur ans Herz legen, entweder dir das mal Schritt für Schritt im Debugger anzusehen oder wirklich mal deinen Code zu nehmen und dann jeden Schritt per Hand auf Papier durchzugehen. Dabei fällt einem so ein Fehler dann recht schnell auf |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Internetseiten werden nicht komplett geladen | schmitti81 | Internet Allgemein | 4 | 01.04.09 14:40 |
| [JAVA] quicksort sortiert nicht komplett | MrSpider | Code Kitchen | 7 | 04.06.08 16:36 |
| Array nicht komplett ausgeben | weau | (Web-) Design und webbasierte Sprachen | 7 | 20.03.08 19:55 |
| google listet page nicht komplett | psyhead | (Web-) Design und webbasierte Sprachen | 3 | 08.08.05 00:01 |
| phpmyadmin => absteigend sortiert | Flou | (Web-) Design und webbasierte Sprachen | 4 | 01.07.03 16:59 |