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.)
Eljárás: I:=1 Ciklus amíg I<=N és A(I) nem T tulajdonságú I:=I+1 Ciklus vége VAN:=I<=N Ha VAN akkor SORSZ:=I Eljárás vége.
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étele A rendezetlen tömbben való kereséshez használjuk. Logaritmikus keresés tétele Itt 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.
Eljárás Eljárás: A:=1 F:=N Ciklus I:=INT((A+F)/2) Ha B(I)<X akkor A:=I+1 Ha B(I)>X akkor F:=I-1 amíg A<=F és B(I)<>X (amíg A>F vagy B(I) = X) Ciklus vége VAN:=A<=F Ha VAN akkor SORSZ:=I Eljárás vége.
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.
Eljárás folyamatábrában
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!
KÖSZÖNÖM A FIGYELMET!