Autor Beitrag
abikid
Hält's aus hier
Beiträge: 2



BeitragVerfasst: 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!!
ausblenden volle Höhe Delphi-Quelltext
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: 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.