DMUG-Archiv 2012

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

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

Hallo Michael, 

ja, das ist klar; liste_List ist in der Moduleversion die input-Variable, die Sie nicht überschreiben 
können;
der Fehler passiert gleich beim ersten Vertauschungsversuch, die liste muss auf eine Module-lokale Variable xL 
kopiert werden

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

Gruss
Udo.


----Ursprüngliche 
Nachricht----
Von: Michael.Gamer@XXXXXXX.de
Datum: 07.07.2012 10:54
An: <demug@XXXXXXX.ch>
Betreff: Selection Sort 
in MMA Hilfe... geht nur für &quot;kleine&quot; 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
Mail:   mg@XXXXXXX.de

home:           www.michaelgamer.de












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

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