|
- Összefésüléses
rendezés, mergesort: rendezzük növekvő
sorrendbe az x[1..n]
tömbben tárolt számsorozatot,
összefésüléses rendező algoritmust alkalmazva.
( Pszeudokód )
- Gyorsrendezés, quicksort: rendezzük
növekvő
sorrendbe az x[1..n]
tömbben
tárolt számsorozatot, gyorsrendezési
algoritmust alkalmazva (Pszeudokód)
- Bináris keresés, binary
search:
adott egy
szigorúan növekvő számsorozat, amelyet az x[1..n] tömbben
tárolunk, valamint egy a szám.
Írjunk
rekurzív
függvényt, amely visszatéríti
az a
szám tömbbeli
sorszámát, ha megtalálható a tömbben.
A függvény -1-t
térít vissza, ha a szám nincs benne a tömbben.
- Adott egy nxm
-es kétdimenziós tömb, mely 1
és 0 értékeket vehet fel. Az 1-es
értékek
lyukakat jeleznek a tömbben. Határozzuk meg azt a
legnagyobb területű téglalapot, megadva a tömbbeli
koordinátáit (sor, oszlop) melyben nincsenek lyukak,
rekurzív eljárást írva.
- Fraktálok: Forráskód,
háromszög
fraktálra
- Rajzoljuk ki a képernyőre az n-edik szintű, D
széles, Koch fraktált. Példa
0, 1 és 2 szintű
Koch fraktálokra: ( Pszeudokód )
Összefésüléses
rendezés, pszeudokód:
Mergesort( tomb,
p, r)
ha ( p < r ) akkor
q = (p+r)/2
Mergesort(tomb, p, q)
Mergesort(tomb, q+1, r)
Merge(tomb, p, q, r)
vege ha
vege Mergesort
Merge(A, p, q, r)
minden
j = p, r vegezd
B[j] = A[j]
vege minden
k = i = p, j= q+1
amig i ≤q es j ≤r
ha B[i] < B[j] akkor
A[k] = B[i]
i = i+1
maskepp
A[k] = B[j]
j = j+1
vege ha
k = k+1
vege amig
amig i ≤ q
A[k] = B[i]
k = k+1
i = i+1
vege amig
amig j ≤ r
A[k] = B[j]
k = k+1
j = j+1
vege amig
vege Merge
Gyorsrendezés pszeudokód
QuickSort(tomb, p,
r)
ha p < r akkor
q = Feloszt(tomb, p, r)
QuickSort(tomb, p, q)
QuickSort(tomb, q+1, r)
vege ha
vege QuickSort
Feloszt(A,
p, r)
i = p-1, j = r+1
x = A[p]
amig IGAZ vegezd
vegezd
i = i+1
amig A[i] < x
vegezd
j=j-1
amig A[j] > x
ha i<j akkor
Csere(A[i], A[j])
kulonben return j
vege amig
vege Feloszt
Háromszög
fraktál:
#include
<graphics.h>
#include
<conio.h>
#include
<math.h>
#include
<stdlib.h>
void
haromszog(int x1,int y1,int x2,int y2,int x3,int y3,int k)
{
line(x1,y1,x2,y2);
line(x1,y1,x3,y3);
line(x2,y2,x3,y3);
if (k)
{
haromszog(x1,y1,(x1+x3)/2,(y1+y3)/2,(x1+x2)/2,(y1+y2)/2,k-1);
haromszog(x2,y2,(x1+x2)/2,(y1+y2)/2,(x2+x3)/2,(y2+y3)/2,k-1);
haromszog(x3,y3,(x1+x3)/2,(y1+y3)/2,(x2+x3)/2,(y2+y3)/2,k-1);
floodfill((x1+x2+x3)/3,(y1+y2+y3)/3,WHITE);
}
}
int
main()
{
int gd,gm;
gd = gm = 0;
initgraph(&gd,&gm,"");
setcolor(WHITE);
setfillstyle(1,WHITE);
haromszog(0,479,639,479,320,0,4);
getch();
closegraph();
return 0;
}
Koch görbe pszeudokód Kezdeti hivas:
f = 3;
rajz(0,200,0,600);
rajz(x,
y,
alfa, d)
ha d > f akkor
d = d / 3;
rajz(x, y, alfa, d);
rajz(x+d*cos(alfa), y+d*sin(alfa), alfa+pi/3, d);
rajz(x+d*cos(alfa)+d*cos(alfa+pi/3), y+d*sin(alfa)+d*sin(alfa+pi/3),
alfa-pi/3, d);
rajz(x+2*d*cos(alfa), y+2*d*sin(alfa), alfa, d);
kulonben
line(ceil(x), ceil(480-y), ceil(x+d*cos(alfa)),
480-ceil(y+d*sin(alfa)))
vege ha
vege
rajz
|