Algoritmusok 1
- Algoritmus: lineáris tömb bejárása. Legyen adott az LB alsó és az UB felső indexha-
tárú LA lineáris tömb. Az algoritmus bejárja az LA tömböt, és az elemeire a
PROCESS (feldolgozás) összefoglaló névvel jelölt műveleteket tartalmazza.
- [A számláló kezdőértékének beállítása.] K:=LB.
- Repeat 3. és 4. lépés while K<= UB.
- [Hozzáférés a tömbelemhez, és az elem feldolgozása.]
A PROCESS művelet alkalmazása az LA[K] elemre.
- [A számláló növelése.] K:=K+1.
[A 2. lépésben kezdődött ciklus vége.]
- Exit.
- Algoritmus: lineáris tömb bejárása. Az algoritmus bejárja az LA alsó és az LB felső
indexhatárú LA lineáris tömböt, és az elemeire a PROCESS összefoglaló névvel jelölt
műveletet alkalmazza.
- Repeat for K = LB to UB:
A PROCESS művelet alkalmazása az LA[K] elemre.
[A ciklus vége.]
- Exit.
- Algoritmus: új elem beszúrása lineáris tömbbe; INSERT(LA, N, K, ITEM). Az LA itt
N elemű lineáris tömb, a K pedig egy olyan pozitív egész szám, amelyre: K <= N. Ez
az algoritmus az LA tömb K-adik pozíciójába szúrja be az ITEM elemet.
- [A számláló kezdőértékének beállítása.] J:=N.
- Repeat 3. és 4. lépés while J >= K.
- [A J-edik elem léptetése.] LA[J+1]:=LA[J].
- [A számláló csökkentése.] J:=J-1.
[ 2. lépésben elkezdődött ciklus vége.]
- [Az elem beszúrása.] LA[K]:=ITEM
- [Az N értékének aktualizálása.] N:=N+1.
- Exit.
- Algoritmus: elem törlése a lineáris tömbből; DELETE(LA, N, K, ITEM). Az LA itt N
elemű tömb, a K pedig a következő feltételnek eleget tevő pozitív egész szám. K<=N.
Ez az algoritmus az LA tömbből kitörli a K-adik elemet.
- ITEM:=LA[K].
- Repeat for J=K to N-1:
[A J+-edik elem felfelé léptetése.] LA[J]:=LA[J+1].
[A ciklus vége.]
- [Az N értékének aktualizálása.] N:=N-1.
- Exit
- Algoritmus: buborék rendezés; BUBBLE(DATA, N). A DATA tömbnek N eleme
van. Az algoritmus rendezi a DATA tömb elemeit.
- Repeat 2. és 3. lépés for K = 1 to N-1.
- PTR:=1. [A meneteket számon tartó PTR mutató kezdőértékének beállítása.]
- Repeat while PTR<=N-K: [A menetbe tartozó műveletek végrehajtása.]
- If DATA[PTR]>DATA[PTR+1], then: A DATA[PTR] és a
DATA[PTR+1] felcserélése.
[Az If szerkezet vége.]
- PTR:=PTR+1.
[A belső ciklus vége.]
[Az 1. lépésben elkezdődött külső ciklus vége.]
- Exit.
- Algoritmus: szekvenciális keresés; LINEAR(DATA, N, ITEM, LOC). A DATA itt N
elemet tartalmazó lineáris tömb, az ITEM pedig a megadott keresendő információ. Ez
az algoritmus megadja az ITEM információ LOC helyét a DATA tömbben, sikertelen
keresés esetén pedig 0-ra állítja be a LOC értékét.
- [Az ITEM beszúrása a DATA tömb végére.] DATA[N+1]:=ITEM.
- [A számláló inicializálása.] LOC:=1.
- [Az ITEM keresése.]
Repeat while: DATA[LOC] . ITEM:
LOC:=LOC+1
[A ciklus vége.]
- [Sikeres keresés?] If LOC = N+1, then LOC:=0.
- Exit.
- Algoritmus: bináris keresés; BINARY(DATA, LB, UB, ITEM, LOC). A DATA itt
rendezett tömb, amelyben az LB az alsó, az UB pedig a felső indexértéket jelenti. Az
ITEM a keresendő információ. A BEG, az END és a MID változó a DATA elemeiből
képzett szegmens elejét, végét, illetve közepét jelöli. Az algoritmus megadja a kere-
sendő ITEM adat LOC helyét, vagy NULL-ra állítja be a LOC értékét.
- [A szegmenst kezelő változók kezdőértékének beállítása.]
BEG:=LB, END:=UB, MID:=INT((BEG+END)/2).
- Repeat 3. és 4. lépés while BEG<=END and DATA[MID] . ITEM.
- If ITEMEND:=END-1.
Else
BEG:=MID+1.
[Az If szerkezet vége.]
- MID:=INT((BEG+END))/2.
[A 2. lépésben elkezdődött ciklus vége.]
- If DATA[MID]=ITEM, then:
LOC:=MID.
Else:
LOC:=NULL.
[Az If szerkezet vége.]
- Exit.
Egy szintet vissza, vagy
vissza a főmenübe.