gombkötő attila

19
Gombkötő Attila Lineáris egyenlet

Upload: yin

Post on 21-Jan-2016

71 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Gombkötő Attila

Gombkötő Attila

Lineáris egyenlet

Page 2: Gombkötő Attila

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

Page 3: Gombkötő Attila

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.

Page 4: Gombkötő Attila

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•

Page 5: Gombkötő Attila

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.)

Page 6: Gombkötő Attila

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.

Page 7: Gombkötő Attila
Page 8: Gombkötő Attila

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

Page 9: Gombkötő Attila

PROGRAMOZÁSI TÉTELEKKOVÁCS DÁVID

Page 10: Gombkötő Attila

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.

Page 11: Gombkötő Attila

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.

Page 12: Gombkötő Attila

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

Page 13: Gombkötő Attila

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.

Page 14: Gombkötő Attila

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.

Page 15: Gombkötő Attila

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.

Page 16: Gombkötő Attila

Eljárás folyamatábrában

Page 17: Gombkötő Attila

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.

Page 18: Gombkötő Attila

Hátrány

Bonyolult algoritmus!

Page 19: Gombkötő Attila

KÖSZÖNÖM A FIGYELMET!