| Autor |
Beitrag |
abikid
Hält's aus hier
Beiträge: 2
|
Verfasst: Fr 04.05.07 21:11
Hallo,
ich hab nächste Woche ne Infoprüfung. Es geht u.a. um verschiedene Sortieralgorithmen, die hab ich mir jetzt noch mal zusammen "gebastelt"bin mir aber nicht sicher, ob der Quelltext so stimmt. Es wäre echt super, wenn mal jemand drüber gucken könnte und eventuelle Fehler verbessern könnte.
Es sollen immer Zufallszahlen, die vorher erzeugt wurden, sortiert werden.
Dankeschön!!
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53:
| var zf: array [1..10] of integer;
procedure bubblesort; var i,k,zwsp: integer; begin for i:= 1 to 10-1 do for k:= 1 to 5 do begin if zf[k] > zf[k+1] then begin zwsp:= zf[k]; zf[k]:= zf[k+1]; zf[k+1]:= zwsp; end; end; end;
procedure minimumsortieren; var minpos,min, i,k: integer;
begin for i:= 1 to 10-1 do begin minpos:= i; min:= zf[i]; for k:= i+1 to 10 do begin minpos:= k; min:O feld[k]; end; zf[minpos]:=zf[i] zf[i]:= min; end;
procedure einfuegesortieren; var i,k,merken:integer; begin for i:= 1 to 10 do begin merken:= zf[i]; k:=i; while (k>1) and (zf[k-1]>merken) do begin zf[k]:=zf[k-1]; dec(k); end; zf[k]:=merken; end; end; |
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Fr 04.05.07 22:08
1. Zähle nicht bis '10', sondern bis 'N' oder 'Anzahl' oder so.
2. Bubblesort ist falsch. Du musst jedes Element i (1..n-1) mit jedem Element j [i+1 ..n] vergleichen
3. MinimumSort: Du suchst nicht das jeweils kleinste Element...
4. www.sortieralgorithmen.de/ hilft
_________________ Na denn, dann. Bis dann, denn.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Sa 05.05.07 10:22
5. Arrays sollten immer bei 0 anfangen 6. Ein SourceFormatter, wie der von Egbert van Nes, macht den Source übersichtlich und lesbar 7. Beim Programmieren gibt's keinen richtigen Quelltext, nur welchen, der das Erwartete ausführt
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
abikid 
Hält's aus hier
Beiträge: 2
|
Verfasst: Sa 05.05.07 20:12
Vielen Dank für die Hinweise...also ich versteh nicht ganz warum der das f[k] mit f[k-1] vergleicht...weil ich hab mir das immer so vorgestellt, dass z.B. beim 1. Feld losgeht und er das mit dem das sozusagen rechts daneben steht vergleicht...müsste das dann aber nicht +1 sein??? Also...ich mein ich bezweifel jetzt nicht, das dass mit -1 falsch ist...aber ich versteh es einfach nicht....)-:
Ähm ja und ich dachte auch immer, dass die eine Schleife dafür da ist, dass das Feld immer um eins von "hinten" verkleinert wird, weil da ja dann schon die größte Zahl steht und ein Vergleich ja theoretisch nicht mehr notwendig wäre....aber die erste Schleife mit i sorgt dafür, dass die Zweite mit k so oft abläuft, wie auch Feldplätze besetzt sind....also, dass ingesamt die ganze Liste abgearbeitet wird oder???
Wenn ich jetzt die Liste die zu sortieren ist nach jedem Durchgang verkleinern will, müsste ich theoretisch die Anzahl immer um eins verringern, nachdem die Schleife durchlaufen wurde, oder???
Nun ja...also ich hab jetzt ja genug verwirrendes Zeug zusammen geschustert....tut mir Leid, dass ich Euch damit nerve, aber ich glaube mein Lehrer könnte es nicht erklären...Sorry!!!
Tschööööööö und Danke, falls Ihr mir erneut helfen könnt.
|
|
|