Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
KÉSZÍTETTE: KOVÁCSICS KRISZTIÁN
Szortírozás KÉSZÍTETTE: KOVÁCSICS KRISZTIÁN
2
Tartalom: Beszúrás Összefészülés Sorbarendezés Átrendezés cserével
Legnagyobb és a következő elem
3
Beszúrás Adott egy lista n-1 dologról ( ezek lehetnek számok , nevek bármi ) Ezután az n-ik elemet pedig beakarjuk rakni a listába. Cél: listában szereplő dolgokkal összehasonlítva, a lista megfelelő helyére kell beszúrnunk. Hogyan lehetséges ez?
4
Példa:
5
Beszúrás Hátránya: Lineális kereséssel történik
Átlagosan n/2 összehasonlítást igényel Legrosszabb eset: n-1 összehasonlítás. > nem túl gazdaságos
6
Bináris rendezés Feltételezzük: n= 2k tehát a listánk megegyezik 2 valamely hatványával. Ötlet: Hasonlítsuk össze a kiválasztott elemet , a lista középső elemével. 2k-1 -1 elemmel kell összehsonlítani Következő: 2k-2-1 és így tovább. Tehát a k lépésszámot kifejezve: k = log2 n
7
Bináris Keresés példa:
Kezdő sorozat: { , , , , , , } Beszúrandó elem: 1 Egyszerűség kedvéért Feltételezzük: n = 2k 1. összehasonlítás: 1 < > n = = 3 ( enyni elem közé kell beszúrni az újat ) 2. összehasonlítás: 1 < n = = 1 elemmel kell összehasonlítani 3. összehasonlítás: 1 < > Megvan az elem helye
8
Bináris Keresés K lépésszám n – el kifejezve. K = log2 n
Előző példában : n = 8al K = 3
9
Összehasonlítás Nem mindig gazdaságosabb mint az előző lineális keresés és beszúrás. 1000 elem esetén ( legroszabb eset) : Beszúrás: 1000 művelet Bináris keresés: 10 művelet. Informatikában: Gazdaságtalan, nem használjuk.
10
Feladat Itt kétserpenyős mérleg segítségével kell kiválasztani a külsőre teljesen egyforma pénzdarabok közül a könnyebb hamisat, 27 darab pénzérme van. Megoldás:
11
Feladat – Bináris rendezés
Ha n = 3k alakú pénzdarabok száma, akkor átlagosan k mérlegelésre van szükség, de átlagosan ennél kevesebb mérlegelés nem lehetséges. N = 27 pénz db 27 = 3k > k = log3 27 = 3
12
Amerikai Hadsereg - Feladat
2.1. Példa. Az amerikai hadseregnél állítólag úgy végzik a vérbajosok felkutatását, hogy az egész társaságtól vért vesznek, és a páciensek felének véréből egy részt összeöntve elvégzik a Wassermann-próbát. Amelyik félnél ez pozitív, ott a felezgetést tovább folytatják egész addig, amíg a betegeket ki nem szűrték. Ebben a seregben 1 beteg van. Hány összehasonlítás kell hogy kiszűrjük biztosan a beteget ? N = 1000 N = 2k ~ k = log2 1000
13
Összefésülés 2 db rendezett n hosszúságú lista
Szeretnénk összefésülni a 2 listát Kevés összehasonlítással X1…. Xn Y1…. Yn
14
Összefésülés 1. megoldás: Hátránya: x elemek sokszoros mozgatása
15
Javított megoldás: 3. tár bevezetése, elemek egyszeri mozgatása.
16
Sorbarendezés Gyakori feladat hogy n adott dolgot valamilyen szempont szerint sorba kell rendezni. Lehet: érték, súly, növekvő, csökkenő, Feltételezés: bármely 2 dolgot összehasonlítva, megtudjuk mondani melyik előzze meg a másikat.
17
Szomszédos elemek cseréje - buborék
Adott egy 5 elemű tömb: Hány cserével tudnánk az elemeit növekvő sorrendbe rendezni?
18
Szomszédos elemek cseréje
19
Átrendezés Cserékkel Adott egy K1, K2,….,kn sorozat. Melyeket növekvő sorrendbe kell átrendezni. 1. fázis k1 szám a helyére kerül. 1. csere k1 < kn , k1 < kn-1, k1> kn-2 és az új sorozatban függőleges vonallal vágjuk le amikkel már nem kell összehasonlítani. Kn-2 | K2K3…..Kn-3,K1|Kn-1,Kn
20
Példa 503,87, 512,61,908,170,897,275 1. fázis: 503 helyére kerül.
1. csere után :275 |, 87 , 512 , 61 , 908 , 170 ,897, 503 2. csere 275,87 | 503,61,908,170,897 | 512 3. csere 275, 87, 170 | 61,908,502 |897,512 4. csere után:275,87,170,61,|502|,908, 897, 512
21
Példa: 2. fázis: 275 helyretétele 275,87, 170,61,503,908,897,512
275,87, 170,61,503,908,897,512 1. csere után: 61 | 87,170,275 | …..
22
Feladat – Átrendezés cserékkel
Szomszédos elemek cseréjével: 8 lépésből. Átrendezés cserékkel:
23
Legnagyobb és következő elem
N dolog adott, melynek a sorrendjét nem ismerjük. Hány összehasonlítás kell hogy a legnagyobbat megtaláljuk? Tegyük fel n db ping pong versenyzőről van szó Lehető legkevesebb mérkőzést szeretnénk játszatni velük, hogy kiderüljön melyik a legjobb. (Erősorrend adott, és a jobb képességű nyer) 2 lehetőség:
24
Legnagyobb és a következő elem
Kihívásos verseny: Valaki kikiáltja magát bajnoknak, a bajnokot bárki kihívhatja. A Vesztes kiesik a versenyből, a győztest újra ki lehet hívni. Ha elfogytak a kihívók akkor megvan a bajnok. Kieséses bajnokság a közismert módon.
25
2. Legnagyobb elem Így a szükséges mérkőzések száma : (n-1) + (m-1)
De mennyi az m? Legfeljebb annyi ahány forduló volt, és a versenyben feleződnek: Minimum mérkőzés szám a 2. helyezethez: n+ (log2 n ) -2
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.