DMUG-Archiv 2012

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Selection Sort in MMA Hilfe... geht nur für "kleine" Listen???

Hallo Forum, 

  ich habe da mal ein (sonderbares) Problem. Für meine Studierenden habe ich ein Beispiel gemacht, um zu zeigen das BubbleSort die Komplexität O(n^2) hat. keine große Sache, kein Problem. Jetzt das Gleiche mit SelectionSort. Der Einfachheit halber ist der Code ja schon in der MMA Hilfe drin (illustriert die Do-Schleife) und da nehme ich natürlich den:

Do[If[list[[i]] > list[[j]], list[[{i, j}]] = list[[{j, i}]]], {i,Length[list]}, {j, i + 1, Length[list]}]; list

 
Jetzt habe ich das in einen Modul gepackt:

selectionSort[liste_List] := Module[{},
  Do[If[liste[[i]] > liste[[j]], liste[[{i, j}]] = liste[[{j, i}]]], {i,Length[liste]}, {j, i + 1, Length[liste]}];
  liste
  ]

und siehe da ich bekomme Fehlermeldungen, wenn die Liste eine bestimmte Größe überschreitet. Meine Vermutung ist, daß das mit dem RETURN Wert der Do Anweisung zu tun hat, so ganz verstehen kann ich das aber nicht. Hat da jemand eine Erklärung?
Ich habe mal das MMA-Notebook mitgeschickt. 

Viele Grüße

m.g.


Michael Gamer
Zur Römerbrücke 19
63456 Hanau 

Telefon: 06181 663363
mobil: 0176 430 99707
Fax: 06181 663363


<<attachment: SelectionSort Problem.nb>>






Antworten:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html