Hier die Quelltext aus einem Delphi-Buch bevor du ewig suchst:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure sort_austausch (var a: array of word); var bis,i,j : longint; h : word; begin bis := High(a); For i := 0 To bis - 1 do For j := i + 1 To bis do If a[i] > a[j] Then begin h := a[i]; a[i] := a[j]; a[j] := h; end; end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure sort_auswahl (var a: array of word); var bis,i,j,k : longint; h : word;
begin bis := high(a); For i := 0 To bis - 1 do begin h := a[i]; k := i; For j := i + 1 To bis do If a[j] < h Then begin h := a[j]; k := j; End; a[k] := a[i]; a[i] := h; end; end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure sort_bubble (var a: array of word); var bis,i : longint; h : word;
begin bis := high(a); repeat For i := 0 To bis - 1 do If a[i] > a[i + 1] Then begin h := a[i]; a[i] := a[i + 1]; a[i + 1] := h; End; dec(bis); until bis = 1; End; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure sort_shell (var a: array of word); var bis,i,j,k : longint; h : word;
begin bis := high(a); k := bis shr 1; While k > 0 do begin For i := 0 To bis - k do begin j := i; While (j >= 0) And (a[j] > a[j + k]) do begin h := a[j]; a[j]:= a[j + k]; a[j + k] := h; dec(j,k); end; end; k := k shr 1; end; End; |
Die Shell_Sort ist dabei das schnellste Sortierverfahren. Aber zu bemerken ist, dass die Shellsort bei mir bisher immer die letzte Zahl nicht richtig sortiert hat (Fehler noch nicht gefunden).
PS: Das ich dir den Quelltext poste liegt nur daran, dass du im Informatikunterricht sitzt und wahrscheinlich keine Zeit hast, das ganze Internet zu durchsuchen.
Moderiert von UGrohne: Code- durch Delphi-Tags ersetzt.