added adatstrukturak
This commit is contained in:
parent
ce936f62c7
commit
89f67d62d9
69
adatstrukturak
Normal file
69
adatstrukturak
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
Adatstruktúrák és algoritmusok
|
||||||
|
|
||||||
|
A problémamegoldás menete
|
||||||
|
Való problémák => absztrakt modellezés => algoritmus => program
|
||||||
|
|
||||||
|
Algoritmus
|
||||||
|
Az algoritmus egy hatékony eljárás egy feladat vagy probléma megoldására, melynek helyessége bizonyítható.
|
||||||
|
|
||||||
|
Hatékonyság
|
||||||
|
A hatékonyságot a futási idő és a memóriaigény határozza meg.
|
||||||
|
|
||||||
|
|
||||||
|
Algoritmusok futásidő elemzése
|
||||||
|
Futási idő: Egy bizonyos bemenetre a végrehajtott (gépfüggetlen) alapműveletek, vagy lépések száma.
|
||||||
|
|
||||||
|
A lépésszám pontos meghatározása helyett általában elegendő a lépésszám nagyságrendjének meghatározása,
|
||||||
|
és ebből már (kis óvatossággal) következtetni lehet arra,
|
||||||
|
hogy az algoritmus mennyire hatékony, avagy hogyan fog viselkedni nagyobb értékekre.
|
||||||
|
|
||||||
|
Aszimptotikus Hatékonyság
|
||||||
|
Ha a bemenet mérete elég nagy, akkor az algoritmus futási idejének csak a nagyságrendje érdekes
|
||||||
|
|
||||||
|
Az O ordó jelölés
|
||||||
|
Az O jelölést arra használjuk, hogy a futási idő növekedését aszimptotikusan alulról és felülről konstans távolságra behatároljuk.
|
||||||
|
|
||||||
|
Például a bináris keresés futási ideje legrosszabb esetben O(log n), helytelen lenne azt állítani, hogy a bináris keresés futási ideje O (log n) minden esetben.
|
||||||
|
A bináris keresés futási ideje soha nem rosszabb, mint O (log n), de van amikor ennél jobb.
|
||||||
|
|
||||||
|
Jó lenne egy olyan aszimptotikus jelölés ami azt fejezné ki, hogy "a futási idő maximum ennyivel nő, de ennél lassabban is nőhet." Erre használjuk az O jelölést.
|
||||||
|
|
||||||
|
Ha a futási idő O(f(n)), akkor elég nagy n esetén a futási idő maximum k*f(n) valamilyen konstans k érték mellett.
|
||||||
|
|
||||||
|
Azt mondjuk "f(n) ordója" vagy egyszerűen "O(f(n))" (kiejtésben használatos még az "ordó f(n)" is).
|
||||||
|
Az O jelölést aszimptotikus felső korlátként használjuk, mivel a futási időt felülről korlátozza, ha az input mérete elég nagy.
|
||||||
|
|
||||||
|
Bináris keresés futási ideje: O(log<sup>2</sup>n)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Tömb
|
||||||
|
A tömb egy olyan adatszerkezet, amely menet közben nem méretezhető át.
|
||||||
|
Tehát ha új elemeket szeretnénk egy meglévő tömbhöz adni, az csak úgy fog működni,
|
||||||
|
hogy létrehozunk egy új tömböt, ami az új elemek és a meglévő elemek tárolására alkalmas,
|
||||||
|
ezután pedig bemásoljuk a meglévő elemeket és az új elemeket a teljesen új tömbünkbe.
|
||||||
|
|
||||||
|
Tömbökben referencia típusokat is alkalmazhatunk,
|
||||||
|
viszont ebben az esetben nem elég példányosítani a tömböt,
|
||||||
|
az egyes elemeket is példányosítani kell, mivel ebben az esetben a tömb csak az objektumra mutató referenciát tárolja,
|
||||||
|
így a példányosítás nélkül a tömb elemeinek értéke null lesz.
|
||||||
|
|
||||||
|
Az osztályokat nem muszáj a konstrukroruk segítségével példányosítani.
|
||||||
|
Erre a célra vezették be a nyelvben az Object Initializer szintaxist,
|
||||||
|
amivel egy osztály adattagjai úgy adhatóak meg, mint egy tömb elemei.
|
||||||
|
|
||||||
|
Ez akkor jön jól, ha van egy osztályunk, amely adattagokkal rendelkezik,
|
||||||
|
de a konstruktor az objektum minden adattagjának beállításához nagyon összetett és komplikált lenne.
|
||||||
|
Ebben az esetben nem érdemes konstruktort írni. Az objektum inicializáló szintaxis a következő:
|
||||||
|
|
||||||
|
var objektum = new osztály(){
|
||||||
|
Adattag = érték,
|
||||||
|
Adattag2 = érték,
|
||||||
|
Adattag3 = érték
|
||||||
|
};
|
||||||
|
|
||||||
|
Ez a szintaxis csak olyan adattagok esetén alkalmazható, amelyek publikusan is írhatóak.
|
||||||
|
Egyéb védelmi szinttel rendelkező adattagok nem írhatóak ezzel a módszerrel.
|
||||||
|
Ezen adattagok beállítására továbbra is a konstruktor szintaxis használható.
|
||||||
|
|
||||||
|
Az osztályokat
|
Loading…
Reference in New Issue
Block a user