Einzelnen Beitrag anzeigen

quaero

Registriert seit: 25. Apr 2013
38 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: Arrayzugriff nimmt irgendwelche Wahllos-Variableninhalte aus Speicher

  Alt 22. Apr 2015, 15:32

Delphi-Quellcode:
    if links <> min then
    begin
      temp := Form1.DynARray[ links ].SortListNumber;
      Form1.DynARray[ links ].SortListNumber := Form1.DynARray[ min ].SortListNumber;
      Form1.DynARray[ min ].SortListNumber := temp;
    end;

    links := links + 1;
  end;
end;
Irgendwie wendest du den Algorithmus nicht wirklich an. Es geht darum, dass du das kleinste Element suchst und an den Anfang schiebst und dann im Rest weitersuchst.
Das, was du machst, ist aber, dir nur zu merken, welche beiden Elemente du tauschen müsstest (im ersten Schritt Element 3 auf 0 und 0 auf 3), ohne tatsächlich zu tauschen. Das führt dazu, dass das größere Element an der Stelle bleibt und nicht weiter beachtet wird, während das kleinste Element immer wieder gefunden und als Tauschpartner gefunden wird.
Entweder führst du den Tausch tatsächlich aus oder die passt die Suche nach dem kleinsten Element in der Weise an, dass immer alle 10 Elemente geprüft werden, aber nur, wenn deren SortListNumber > aktueller Index ist.
  Mit Zitat antworten Zitat