DEFINT(intfeld[100],anzahl);
VOIDTYPE #FillFeld(DEFINT(n));
BLOCK(
DEFINT(nr),
nr:=0,
WHILE(nr <= n, BLOCK(
intfeld[nr]:=rnd(),
INC(nr))
),
RETURN()
);
VOIDTYPE #QuickSort(DEFINT(l,r));
BLOCK(
DEFINT(i,j,x,w),
i:=l, j:=r,
x:=intfeld[(l+r)/2],
WHILE(i <= j, BLOCK(
WHILE(intfeld[i] < x, INC(i)),
WHILE(x < intfeld[j], DEC(j)),
IF(i <= j, BLOCK(
w:=intfeld[i],
intfeld[i]:=intfeld[j],
intfeld[j]:=w,
INC(i), DEC(j))
))
),
IF(l < j, QuickSort(l,j)),
IF(i < r, QuickSort(i,r)),
RETURN()
);
VOIDTYPE #PrintFeld(DEFINT(n));
BLOCK(
DEFINT(nr),
nr:=0,
WHILE(nr <= n, BLOCK(
PRINT("%i ",intfeld[nr]),
INC(nr))
),
RETURN()
);
VOIDTYPE #BubbleSort(DEFINT(n));
BLOCK(
DEFINT(i,j,x),
i:=1,
WHILE(i <= n, BLOCK(
j:=n,
WHILE(j >= i, BLOCK(
IF(intfeld[j-1] > intfeld[j], BLOCK(
x:=intfeld[j-1],
intfeld[j-1]:=intfeld[j],
intfeld[j]:=x)
),
DEC(j))
),
INC(i))
),
RETURN()
);
CLS();
PRINT("\nBitte Anzahl eingeben (max. 99): "); scan("%i",anzahl);
FillFeld(anzahl);
QuickSort(0,anzahl);
@ BubbleSort(anzahl);
PrintFeld(anzahl).