JuliH3 Geschrieben 19. Dezember 2023 Teilen Geschrieben 19. Dezember 2023 Hallo, ich war schon auf Fehlersuche. Array wird einfach wieder ausgegeben. Wo ist der Fehler im Algroithmus? int[] list = {63, 73, 23, 87, 472} int a = 0; int b = list.length-1; int wei = 0; while(a != b && a != b-1){ int fab = a; int rab = a; for(int i = a; i < b-1 ; i++) if(list <= list[fab] ){ fab = i; } if(list >= list[rab]){ rab = i; } wei = list[a]; list[a] = list[fab]; list[fab] = wei; wei = list; list = list[rab]; list[rab] = wei; a = a + 1; b = b - 1; } for(int i = 0 ; i < list.length; i++){ System.out.print(" "+ list); Danke im Vorfeld für Denkanstösse: LG Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
be98 Geschrieben 19. Dezember 2023 Teilen Geschrieben 19. Dezember 2023 Völliges Chaos ohne sinnvolle Benennung von Variablen ist der erste Fehler Panopticon und Parser reagierten darauf 2 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tratos Geschrieben 20. Dezember 2023 Teilen Geschrieben 20. Dezember 2023 Haltepunkte einfügen, und Variablen entsprechend anschauen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
allesweg Geschrieben 20. Dezember 2023 Teilen Geschrieben 20. Dezember 2023 Variablen sinnvoll benennen Was soll der Vergleich zweier unterschiedlicher Datentypen bringen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JuliH3 Geschrieben 20. Dezember 2023 Autor Teilen Geschrieben 20. Dezember 2023 Hi, vielen Dank für die Anmerkungen. Das ist die Aufgabe, den Algorithmus sinnvoll machen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
allesweg Geschrieben 20. Dezember 2023 Teilen Geschrieben 20. Dezember 2023 Und wie viel ist es dir wert, wenn wir deine Aufgabe für dich erledigen? JuliH3 reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JuliH3 Geschrieben 20. Dezember 2023 Autor Teilen Geschrieben 20. Dezember 2023 vor einer Stunde schrieb Tratos: Haltepunkte einfügen, und Variablen entsprechend anschauen. Wo würdest du einen Haltpunkt einbauen? Lg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
rasenganIT Geschrieben 20. Dezember 2023 Teilen Geschrieben 20. Dezember 2023 (bearbeitet) Du weißt schon dass ChatGPT existiert? Vergleiche in den Schleifen: Sie vergleichen direkt list mit list[fab] bzw. list[rab], was nicht korrekt ist, da list ein Array ist. Sie sollten Elemente des Arrays vergleichen. Falsche Verwendung von Variablen: In Ihrer while-Schleife verwenden Sie die Variablen fab und rab falsch. Diese Variablen sollten dazu dienen, den Index des kleinsten und des größten Elements zwischen den Indizes a und b zu finden. Drucken des Arrays: In Ihrer letzten for-Schleife drucken Sie das gesamte Array anstatt jedes Element. Sie müssen list verwenden, um jedes Element zu drucken. int[] list = {63, 73, 23, 87, 472}; int a = 0; int b = list.length - 1; while (a < b) { int minIndex = a; int maxIndex = a; for (int i = a; i <= b; i++) { if (list[i] < list[minIndex]) { minIndex = i; } if (list[i] > list[maxIndex]) { maxIndex = i; } } // Tausche das kleinste Element mit dem ersten Element int temp = list[a]; list[a] = list[minIndex]; list[minIndex] = temp; // Wenn das größte Element jetzt an der Stelle des kleinsten ist if (maxIndex == a) { maxIndex = minIndex; } // Tausche das größte Element mit dem letzten Element temp = list[b]; list[b] = list[maxIndex]; list[maxIndex] = temp; a++; b--; } // Drucken des sortierten Arrays for (int i = 0; i < list.length; i++) { System.out.print(list[i] + " "); } Bearbeitet 20. Dezember 2023 von rasenganIT Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JuliH3 Geschrieben 20. Dezember 2023 Autor Teilen Geschrieben 20. Dezember 2023 vor 8 Minuten schrieb allesweg: Und wie viel ist es dir wert, wenn wir deine Aufgabe für dich erledigen? Als Anfänger ist es schwierig das Chaos zu verstehen. Einige Syntaxfehler habe ich schon bearbeitet, aber was das Ziel des Algorithmus ist, leuchtet mir gerade noch nicht ein. Lg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JuliH3 Geschrieben 20. Dezember 2023 Autor Teilen Geschrieben 20. Dezember 2023 vor 3 Minuten schrieb rasenganIT: Du weißt schon dass ChatGPT existiert? Vergleiche in den Schleifen: Sie vergleichen direkt list mit list[fab] bzw. list[rab], was nicht korrekt ist, da list ein Array ist. Sie sollten Elemente des Arrays vergleichen. Falsche Verwendung von Variablen: In Ihrer while-Schleife verwenden Sie die Variablen fab und rab falsch. Diese Variablen sollten dazu dienen, den Index des kleinsten und des größten Elements zwischen den Indizes a und b zu finden. Drucken des Arrays: In Ihrer letzten for-Schleife drucken Sie das gesamte Array anstatt jedes Element. Sie müssen list verwenden, um jedes Element zu drucken. int[] list = {63, 73, 23, 87, 472}; int a = 0; int b = list.length - 1; while (a < b) { int minIndex = a; int maxIndex = a; for (int i = a; i <= b; i++) { if (list < list[minIndex]) { minIndex = i; } if (list > list[maxIndex]) { maxIndex = i; } } // Tausche das kleinste Element mit dem ersten Element int temp = list[a]; list[a] = list[minIndex]; list[minIndex] = temp; // Wenn das größte Element jetzt an der Stelle des kleinsten ist if (maxIndex == a) { maxIndex = minIndex; } // Tausche das größte Element mit dem letzten Element temp = list; list = list[maxIndex]; list[maxIndex] = temp; a++; b--; } // Drucken des sortierten Arrays for (int i = 0; i < list.length; i++) { System.out.print(list + " "); } Ja, dann gebe ich es da mal ein 🙂 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SoL_Psycho Geschrieben 20. Dezember 2023 Teilen Geschrieben 20. Dezember 2023 vor 10 Stunden schrieb JuliH3: Ja, dann gebe ich es da mal ein 🙂 ...hat er doch schon getan für dich, siehe sein Post... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tratos Geschrieben 21. Dezember 2023 Teilen Geschrieben 21. Dezember 2023 vor 22 Stunden schrieb JuliH3: Wo würdest du einen Haltpunkt einbauen? Lg Bei deinem Kentnissstand ziemlich weit oben, dann F11 schritt für schritt durchgehen. Dann siehste ja was jede Zeile so passiert. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
allesweg Geschrieben 21. Dezember 2023 Teilen Geschrieben 21. Dezember 2023 vor 22 Stunden schrieb JuliH3: was das Ziel des Algorithmus ist, leuchtet mir gerade noch nicht ein Welches Ziel soll ein nicht funktionsfähiger Algorithmus denn haben können? Das widerspricht sich. Wenn wir hier schon Hausaufgabenhilfe leisten sollen, wäre die komplette unverfälschte Aufgabenstellung sinnvoll... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gofer Geschrieben 21. Dezember 2023 Teilen Geschrieben 21. Dezember 2023 Am 19.12.2023 um 22:17 schrieb JuliH3: Hallo, ich war schon auf Fehlersuche. Array wird einfach wieder ausgegeben. Wo ist der Fehler im Algroithmus? int[] list = {63, 73, 23, 87, 472} int a = 0; int b = list.length-1; int wei = 0; while(a != b && a != b-1){ int fab = a; int rab = a; for(int i = a; i < b-1 ; i++) if(list <= list[fab] ){ fab = i; } if(list >= list[rab]){ rab = i; } wei = list[a]; list[a] = list[fab]; list[fab] = wei; wei = list; list = list[rab]; list[rab] = wei; a = a + 1; b = b - 1; } for(int i = 0 ; i < list.length; i++){ System.out.print(" "+ list); Danke im Vorfeld für Denkanstösse: LG was wolltest du machen? Array sortieren mit Bubble Sort? Bitte benutze auch Code formatierung <> damit Code übersichtlich zu machen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arlecchin0 Geschrieben 13. Januar Teilen Geschrieben 13. Januar (bearbeitet) Da ist nicht der Algorithmusfehler relevant, sondern zunächst mal die Syntax- und Type-Fehler. Wieso kompilierst das nicht selber und gehst den Fehlermeldungen nach? Wenn es dann läuft und nicht macht was es soll, dann widmest dich mit einem Debugger dem Algorithmus. Zumindest wenn du was lernen willst... Codeapi.org Bearbeitet 13. Januar von arlecchin0 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.