200 likes | 316 Views
Gombkötő Attila. Lineáris egyenlet. Információtartalom vázlata. Információkezelés alapfogalmai Rendezett tömb felosztása egyenlő részekre Számhalmazok Adatok esetleges rendezése a tömbben Boole algebra Összehasonlításos keresés. A programozási tételek.
E N D
Gombkötő Attila Lineáris egyenlet
Információtartalom vázlata • Információkezelés alapfogalmai • Rendezett tömb felosztása egyenlő részekre • Számhalmazok • Adatok esetleges rendezése a tömbben • Boole algebra • Összehasonlításos keresés
A programozási tételek • A programozási tételeket azért dolgozták ki, hogy a típusfeladatok megoldásához ne kelljen a programozónak újra és újra kitalálnia a módszert. • A keresési probléma megoldásához nyilván a keresési algoritmusok közül választunk.
Keresési algoritmusok: • Lineáris keresés tétele • Logaritmikus keresés tétele • A rendezetlen tömbben való kereséshez a lineáris keresés tételét használjuk. • Amennyiben a logaritmikus keresést akarjuk használni, előbb sorba kell rendeznünk a tömböt. • A tömbök rendezéséhez különböző rendezési algoritmusokat használhatunk: • Rendezés közvetlen kiválasztással; • Rendezés minimum kiválasztással; • Buborékos rendezés; • Egyszerű beillesztéses rendezés
Lineáris keresés tétele • Adott egy N elemű sorozat, és egy, a sorozat elemein értelmezett T tulajdonság. Kérdés: van-e T tulajdonságú elem a sorozatban, és ha van, akkor mi a sorszáma. (Eldöntés és kiválasztás tétele együtt.)
Előny és hátrány • Előnye: • A lineáris keresés egyszerű, áttekinthető algoritmus. • Hátránya: • Alacsony hatékonyságú, lassú algoritmus; • A keresés ideje nyilván attól függ, hogy hányadik helyen van a keresett elem; • Legjobb esetben az első helyen van, ilyenkor egyből, egy lépés után megtaláljuk; • Legrosszabb esetben az utolsó helyen van, ilyenkor az N. lépésnél találjuk meg; • Átlagosan tehát (N+1)/2 lépés után találjuk meg a keresett elemet; • A keresési idő láthatóan egyenesen arányos a tömb elemeinek számával; • Ráadásul sikertelen kereséskor is végig kell járni az egész tömböt, ez sok i
PROGRAMOZÁSI TÉTELEK KOVÁCS DÁVID
A programozási tételek • A programozási tételeket azért dolgozták ki, hogy a típusfeladatok megoldásához ne kelljen a programozónak újra és újra kitalálnia a módszert. • A keresési probléma megoldásához a keresési algoritmusok közül választunk.
Keresési algoritmusok • Lineáris keresés tételeA rendezetlen tömbben való kereséshez használjuk. • Logaritmikus keresés tételeItt előbb sorba kell rendezni a tömböt, vagy az eredetileg is sorba rendezett tömbnél alkalmazzuk.
Algoritmusok a tömbök rendezéséhez • Rendezés közvetlen kiválasztással • Rendezés minimum kiválasztással • Buborékos rendezés • Egyszerű beillesztéses rendezés
Logaritmikus keresés tétele Adott egy N elemű rendezett sorozat, illetve egy keresett elem (X). Kérdés: szerepel-e a keresett elem a sorozatban, és ha igen, akkor mi a sorszáma. Kihasználjuk, hogy a sorozat rendezett, így el tudjuk dönteni, hogy a keresett elem az éppen vizsgált elemhez képest hol helyezkedik el.Alsó, Felső: intervallum alsó és felső végpontjai.
Menete • Rendelkezésre áll egy N elemű növekvő sorrendbe rendezett (!!!!!) sorozat és egy keresett elem (X). Olyan algoritmust kell írni, amely eldönti, hogy szerepel-e a keresett elem a sorozatban, s ha igen, akkor megadja a sorszámot. • Kihasználjuk, hogy a sorozat rendezett. Ez alapján bármely elemről el tudjuk dönteni, hogy a keresett elem előtte vagy utána van-e, esetleg megtaláltuk. Az eljárás lényegének megértéséhez tudni kell, hogy az A és az F változóknak kiemelt szerepük van: mindig annak a részintervallumnak az alsó és felső végpontjai, amelyben a keresett elem benne van.
Előnye • Sokkal hatékonyabb, gyorsabb keresési mód, mint a lineáris keresés. • Azért hívják logaritmikus keresésnek, mert a ciklus lépésszáma kb. log N • A tömb rendezett, először meg kell nézni, hogy melyik részén található a keresett elem. • Ha az elem a középsőnél nagyobb, a keresést elég a középső elem utáni részen folytatni. • Ha az elem a középsőnél kisebb, a keresést elég a középső rész előtti részen folytatni.
Hátrány • Bonyolult algoritmus!