You are on page 1of 5

Algoritmusok

Fogalma
 algoritmus = jól definiált számítási eljárás; bemenet / kimenet: véges számú érték; előállítás:
véges számú lépés
 haszna: pontosan meghatározott számítási feladatok megoldása
 helyes algoritmus = minden bemenetre megáll és helyes eredményt ad
 hatékonysága = sebessége
 NP-teljes feladatok = feladatok, amelyekre nem ismerünk hatékony algoritmust
o ha egyetlen NP-teljes feladatra létezik hatékony algoritmus, akkor mindegyikre
létezik (pl. Négyszín-tétel)
 elemzés: végrehajtáshoz szükséges erőforrások meghatározása (pl. memória, futási idő)
o bemenet mérete: bemenő elemek száma növelése: lineárisan növeli a várható
lépések számát
o futási idő: végrehajtott alapműveletek száma (pl. hasonlítás, értékadás)

Lineáris keresés
 rendezetlen tömbön dolgozik
 elemzése:
o elindul a tömb első elemétől
o legjobb / legrosszabb eset: 1 lépésben / utolsó lépésben találjuk meg
o ha a keresett elem nem található  n + 1 lépésben ér véget az algoritmus
 adatok lineáris növekedése  műveletek számának lineáris növekedése

Bináris / logaritmikus keresés


 rendezett adatokon dolgozik  gyorsabb lesz a
keresés
 igényei: elemek közti hasonlítás, közvetlen elérés,
rendezettség
 elemzése:
o keresendő elem összehasonlítása a tömb
középső elemével
o legjobb / legrosszabb eset: 1 lépésben / utolsó
lépésben találjuk meg
o a keresést abban a tömbfélben folytatjuk,
amelyet a középső és a keresett elem viszonya (kisebb vagy nagyobb) kijelöl
o ha a keresett elem nem található  n + 1 lépésben ér véget az algoritmus
 2 darab elem  lépések száma: log(2n) = n
n

 adatok lineáris növekedése  műveletek számának logaritmikus növekedése


Algoritmusok elemzése
Futási idő
 algoritmus aszimptotikus hatékonysága
o bemenet mérete: óriási  aszimptotikusan hatékonyabb algoritmus a jobb
o bemenet mérete: kicsi  néha nem a fenti algoritmus a hatékony
 algoritmus aszimptotikus futási ideje:
o értelmezési tartomány: N (bemenet lehetséges mérete)

 θ jelölés – aszimptotikus alsó és felső korlátot ad a függvényre


o g(n) függvény: θ( g ( n )) azon függvények halmaza, amelyek esetén:
 létezik c1, c2 és n0 pozitív állandó, úgy, hogy
 minden n ≥ n0 esetén teljesül, hogy
 0 ≤ c 1 g ( n ) ≤ f ( n ) ≤ c2 g(n)

O JELÖLÉS Ω JELÖLÉS
aszimptotikus felső korlátot ad a függvényre (o aszimptotikus alsó korlátot ad a függvényre (ω
jelölés– nem éles felső korlát) jelölés – nem éles alsó korlát)
g(n) függvény: O(g ( n ) ) azon függvények g(n) függvény: Ω(g ( n )) azon függvények
halmaza, amelyek esetén: halmaza, amelyek esetén:
létezik c és n0 pozitív állandó, úgy, hogy létezik c és n0 pozitív állandó, úgy, hogy
minden n ≥ n0 esetén teljesül, hogy minden n ≥ n0 esetén teljesül, hogy
0 ≤ f ( n ) ≤ cg ( n ) 0 ≤ cg ( n ) ≤ f ( n)
 bármely két f ( n ) és g(n) függvény esetén:
o f ( n )=θ ( g ( n ) ), ha f ( n )=O ( g ( n ) ) és f ( n )=Ω ( g ( n ) )
 függvények összehasonlítása:
o tranzitivitás f ( n )=θ ( g ( n ) ) és g ( n )=θ ( h ( n ) ) akkor f ( n )=θ ( h ( n ) )
o reflexivitás f ( n )=θ ( f ( n ) )
o szimmetria f ( n )=θ ( g ( n ) ) akkor, és csakis akkor, ha g ( n )=θ ( f ( n ) )

Rendezés közvetlen kiválasztással Szélsőérték kiválasztásos rendezés


- az első elemet összehasonlítjuk az összes - szélsőérték (min/max) megkeresése a
többi adattal  ha van kisebb, kicseréljük rendezetlen adatok között
- ugyanennek a lépésnek a megismétlése a - felcserélés az első/utolsó adattal
második adattal, harmadikkal stb. - n -1 adatig megyünk
- n – 1 adatig megyünk

helyfoglalás: n+1 azaz O(n)


n∗ ( n−1 )
hasonlítások száma: ,azaz O(n 2)
2
3∗( n−1 )
mozgatások száma: , azaz O(n)
2
Adatszerkezetek
Fogalma
 adatszerkezet = adatok tárolása / szervezése; hozzáférés / módosítások lehetősége
 absztrakt adattípus = legmagasabb absztrakciós szint, ahol semmilyen feltételezéssel nem
rendelkezünk annak konkrét megvalósításáról; leírásának részei:
o típusérték-halmaz
o műveletek
o axiómák
 osztályozása – (A, R) rendezett pár, ahol A: elemek halmaza, R: A halmazon értelmezett
valamilye reláció
o adatelemek típusa szerint (homogén / heterogén)
o R reláció szerint
 struktúra nélküli – nincs kapcsolat
 asszociatív címzésű – lényegi kapcsolat nincs, tartalmuk alapján címezhetők
 szekvenciális – R reláció tranzitív lezártja teljes rendezési reláció 
adatelemek logikailag egymás után helyezkednek el
 hierarchikus
 hálós – R relációra vonatkozólag nincs semmilyen kikötés
 statikus – elemszáma a feldolgozás során nem változik
 dinamikus – elemszáma változhat a feldolgozás alatt
o adatelemek száma szerint stb.

Halmaz
 homogén, statikus, struktúra nélküli, nincs sorrend, véges
 halmazokra értelmezett műveletek: eleme-e, unió/metszet/különbségképzés, összehasonlítás
(egyenlőség, részhalmaz)
 halmaz adatszerkezet műveletei: létrehozás (felsorolás, korlátozott absztrakció, üres
halmaz), bővítés, törlés
 ábrázolás (halmazok karakterisztikus függvényén alapul):
o lehetséges elemek számát korlátozzuk  megfeleltetés a lehetséges elemek és a
lefoglalt bitek között áll fent
o az adott elem halmazhoz tartozása  hozzátartozó bit „1”-re állítása
 multihalmaz = egy adott elem többször is előfordulhat
o homogén, statikus / dinamikus, struktúra nélküli, nincs sorrend, véges
o eleme-e, unió, metszet, különbség, hányszor eleme, számosság
o létrehozás, bővítés, törlés, (csere)
o ábrázolás: nem kétértékű karakterisztikus függvény  egész számok használata a
reprezentációban
Tömb
 homogén, statikus, összetett adattípus
 elemeire egyesével indexekkel hivatkozhatunk – asszociatív
 dimenzió  vektorok, mátrixok
 folytonos elhelyezkedés a memóriában
 tömb adatszerkezet műveletei: létrehozás, csere, törlés, elérés, rendezés, keresés, bejárás

Tömb – mátrixok
 műveletek: létrehozás, elérés, csere, bejárás
 reprezentáció:
o folytonos ábrázolás; sorfolytonos / oszlopfolytonos ábrázolás
o címfüggvényen alapul – meghatározza az elem térbeli elhelyezkedését (indexek
értékeinek és az adatszerkezet kezdő memóriacíme alapján)
 háromszögmátrix
o főátló alatt / felett csupa 0  alsó / felső háromszögmátrix
o cél: helytakarékos tárolás

FELSŐ HÁROMSZÖGMÁTRIX ALSÓ HÁROMSZÖGMÁTRIX


oszlopfolytonos bejárás sorfolytonos bejárás

SZIMMETRIKUS MÁTRIX RITKA MÁTRIX


- egy elem nagyságrenddel többször
szerepel, mint a többi elem összesen
- legtöbbször szereplő elem: gyakori elem
- háromsoros reprezentáció – sorfolytonos
bejárás  nem gyakori elemek (sor,
oszlop, érték) tárolása

Sor
 homogén, speciális szekvenciális, dinamikus, megőrzi az elemek sorrendjét (FIFO)
 lineáris adatszerkezet
 műveletek: létrehozás, üres-e, elem behelyezése, első elem kivétele, első elem olvasása
 sor reprezentációja tömbben:
o index (sor eleje), sor hosszának megadása

Verem
 homogén, speciális szekvenciális, dinamikus, megfordítja az elemek sorrendjét (LIFO)
 lineáris adatszerkezet
 műveletek: létrehozás, üres-e, elem behelyezése, felső elem kivétele, felső elem olvasása

You might also like