Übung 11 - Aufgabe 4

Gast
Gast

Übung 11 - Aufgabe 4

Beitrag von Gast » 29. Feb 2012 11:15

Kann man die Aufgabe 4 auch folgendermaßen lösen?

Code: Alles auswählen

int temp ;
for (int i = a.length-1; i>1; i--) {
       for (int j = 0; j < i; j++) {
              if (a[j] > a [i]) {
                   temp = a [i]; 
                   a [i] = a [j];
                   a [j] = temp; 
         }
}
Zuletzt geändert von mmec am 29. Feb 2012 11:19, insgesamt 1-mal geändert.
Grund: Code in [code][/code] Klammern gesetzt.

Benutzeravatar
mmec
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 203
Registriert: 7. Sep 2011 17:59
Wohnort: Darmstadt

Re: Übung 11 - Aufgabe 4

Beitrag von mmec » 29. Feb 2012 11:29

Ich glaube der Algorithmus funktioniert nicht wenn das Array nur eine Größe von 2 hat, dann wird nicht in die erste For-Schleife gegangen. Wenn du den Code ausführst, kann es also vorkommen dass auf dem Index 0 ein höherer Wert steht als auf dem Index 1, auch wenn das Array größer als 2 ist. Sieht zumindest so aus.

Wenn du das i > 1 mit i > 0 ersetzt sollte es korrekt sein, denke ich.

Grüße, Johannes
FC SEEMOO No.1

Daniel S.
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 25. Sep 2007 12:28
Wohnort: Mörfelden

Re: Übung 11 - Aufgabe 4

Beitrag von Daniel S. » 29. Feb 2012 12:30

Wenn man ganz genau ist, ist Ihr Code, keine korrekte Lösung der Aufgabe 4. Es wird zwar auch das Array sortiert, jedoch ist in der Aufgabe der Sortieralgorithmus Selectionsort (http://de.wikipedia.org/wiki/Selectionsort) gefordert. Wohingegen Sie den Algorithmus Simplesort (http://de.wikipedia.org/wiki/Simplesort) implementiert haben. Im Unterschied zu SelectionSort, wo pro äußerem Durchlauf maximal eine Vertauschung stattfindet, machen Sie unter Umständen mehr Vertauschungen, kommen dafür aber mit einer Variable weniger aus.
Machen Sie sich aber keine Sorgen, es ist besser die Aufgabe verstanden und mit eigenen Ideen gelöst zu haben, als einfach nur den einzelnen Anweisungen in der Aufgabenstellung gefolgt zu sein, ohne den Algorithmus dahinter zu verstehen.
Mit freundlichen Grüßen
Daniel

Gast
Gast

Re: Übung 11 - Aufgabe 4

Beitrag von Gast » 1. Mär 2012 22:11

Dankeschön fürs Überprüfen!
Wäre so eine Lösung in der Klausur ausreichend, oder kann es sein,
dass genau nach dem Selection Sort gefragt wird,
sodass wir diesen kennen sollten?

Daniel S.
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 25. Sep 2007 12:28
Wohnort: Mörfelden

Re: Übung 11 - Aufgabe 4

Beitrag von Daniel S. » 1. Mär 2012 23:01

Ich denke zwar nicht, dass in der Klausur explizit nach Selectionsort gefragt wird, aber so schwer ist das auch nicht:
Größtes Element im unsortierten Teil der Liste finden und gegebenenfalls mit dem letzten Element im unsortierten Teil vertauschen. Unsortierter Teil reduziert sich um eins. Das solange wiederholen, bis der unsortierte Teil nur noch ein Element enthält.
In der Übung ist es eigentlich auch sehr ausführlich erklärt.
Mit freundlichen Grüßen
Daniel

Antworten

Zurück zu „Archiv“