Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Programozási tételek, és „négyzetes” rendezések.  Egy adott m..n intervallumon, tetszőleges f függvényre Összegzés.

Hasonló előadás


Az előadások a következő témára: "Programozási tételek, és „négyzetes” rendezések.  Egy adott m..n intervallumon, tetszőleges f függvényre Összegzés."— Előadás másolata:

1 Programozási tételek, és „négyzetes” rendezések

2  Egy adott m..n intervallumon, tetszőleges f függvényre Összegzés

3  Legyen adott az [1, 0, 3, 4, 5, -1, 2] vektor, f(i) pedig jelentse az i. indexű vektor értéket. (i = 1..7)  Ekkor az összegzés eredménye:  s = (-1) + 2 = 14  Tetszőleges f függvény megadható, aminek paramétere az elemek indexe.  Pl. legyen f(i) = i.  Mindenképp elmegy az interval. végéig Összegzés példa

4  Adott m..n intervallumon összeszámolja a béta tulajdonságú elemeket Számlálás

5  [1, 0, 3, 4, 5, -1, 2] vektor  Legyen Béta(k) = Béta(vektor(k))  Egyértelmű példa: a vektor elemszáma: d = 7  Tetszőleges béta tulajdonság megadása,  pl. béta = nem negatív számok (poz. vagy nulla),  ekkor d = 6  vagy béta = pozitív számok (nulla kivétel)  ekkor d = 7 – 2 = 5  Mindenképp „elteker” az intervallum végéig Számlálás példák

6  Egy adott m..n intervallumon keresi az első béta tulajdonságú elemet. Lineáris keresés

7  [1, 0, 3, 4, 5, -1, 2] vektor,  Legyen, béta(i) = béta(vektor(i))  Továbbá, például béta legyen igaz, hogyha negatív elem az argumentuma.  Ekkor a keresés idáig jut, és itt leáll: [1, 0, 3, 4, 5, -1, 2] Ha nem lenne ilyen tul. elem, a végén állna meg.  Futási ideje n-es, ha az n. elem a megtalált elem.  Előny: egyszerű implementáció, gyakran használatos  Hátrány: (n lehet nagyon nagy, pl. 1 millió/milliárd) Lineáris keresés példák

8  Eldöntés 1: Ugyanaz mint a lineáris keresés, de nem adja vissza a talált (i) indexet, csak hogy létezik-e béta tulajdonságú elem. Eldöntések

9  Tehát ahelyett hogy „igen van ilyen elem, és ez a nyolcadik” (lineáris keresés),  Az eldöntés csak ennyit válaszol: „igen, van ilyen elem”. Eldöntés 1 példák

10  Eldöntés 2: Végig ellenőrzi hogy mindegyik elem ilyen béta tulajdonságú-e. Tehát kötelezően végigmegy az összes elemen, nem áll le előbb. Eldöntések

11  [1, 0, 3, 4, 5, -1, 2] vektor,  Legyen, béta(i) = béta(vektor(i))  Eldöntési kérdés vagyis béta tulajdonság pl.:  Az összes elem pozitív-e? Futás végén: nem  Az összes érték negatív-e?..  Az összes érték természetes szám?... Eldöntés 2 példák

12  Megtalálja a maximumnak definiált elemet  Gyakori hiba lehetőség: a kezdőelem elrontása. Ez mindig legyen az első elem (nem egy kitalált)! Maximum keresés

13

14  Legyen adott az [1, 0, 3, 4, 5, -1, 2] vektor, f(i) pedig jelentse az i. indexű vektor értéket. (i = 1..7)  Indulás: az első max. elem (f(m)) = 1  Eredmény: A megtalált maximum: 5  Mindig végigmegy az egész intervallumon Max. ker példák

15  Ugyanaz mint a max. ker., csak változónevek, és a relációk cserelésével (az egyre kisebb elemeket fogjuk keresni). Minimum keresés

16  Négyzetes -> n^2 futás idejű rendezések  Amik nem a legjobbak (ami n, vagy logn), de széles körben elterjedtek, ismertek és oktatottak.  Persze nagyon nagy számosságú adatot nem ezekkel célszerű rendezni   Cél: például adott számsorokat rendezni  [1, 4, 8, 2, -1, 0] -> [-1, 0, 1, 2, 4, 8] „Négyzetes” rendezések

17  Eljárás Rendezés maximumkiválasztással  Ciklus j = n-től 2-ig  MaxKer(az első j elemben)  Csere(v(j), maxh)  Ciklus vége  Eljárás vége Maximum kiválasztásos rendezés

18  Kiindulás: [1, 4, 8, 2, -1, 0]  j = n, és n most 6. Tehát (j = 6) –tól 2-ig megyünk.  MaxKer az első j=6 (az összes) elemben:  Maximum= 8, csere v(j=6) max=8  [1, 4, 0, 2, -1, 8], továbbá legyen j = 5…  [1, -1, 0, 2, 4, 8], továbbá j = 4…  [1, -1, 0, 2, 4, 8], itt a csere felesleges is…  …. -> Eredmény előbb-utóbb: [-1, 0, 1, 2, 4, 8]  (az aláhúzás a futási területet jelöli) Max. ker. kivál. példa

19  Lényege: mindig „felbuborékoltatjuk” a legalsó elemeket a megfelelő helyre (például ha az első a legnagyobb elem, azt a vektor végére)  [8, 4, 1, 2, -1, 0]  [4, 1, 2, -1, 0, 8]  Majd újrakezdjük a cserélgetést, de mostmár elég a legutolsó elem előtt egyel megállni (mert az a legnagyobb)  [4, 1, 2, -1, 0, 8]  [1, 2, -1, 0, 4, 8]  (aláhúzás hasonlóan mint előbb) Buborék módszer

20  Eljárás Buborékrendezés  Ciklus i = n-től 2-ig, -1-esével  Ciklus j = 1-től i-1 –ig  Ha v(j) > v(j+1) akkor Csere(v(j), v(j+1))  Ciklus vége  Eljárás vége Buborék módszer algoritmusa

21  Rendezéses algoritmusok  Farkas Csaba.: Programozási ismeretek haladó felhasználóknak JOS, 2004  Képek  Fóthi Ákos.: Bevezetés a programozáshoz ELTE Eötvös Kiadó, 2005 Elektronikus jegyzet Felhasznált irodalom


Letölteni ppt "Programozási tételek, és „négyzetes” rendezések.  Egy adott m..n intervallumon, tetszőleges f függvényre Összegzés."

Hasonló előadás


Google Hirdetések