1 / 21

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

Programozási tételek, és „négyzetes” rendezések. Összegzés. Egy adott m..n intervallumon, tetszőleges f függvényre. Összegzés példa. 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:

bayle
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Összegzés példa 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 + 0 + 3 + 4 + 5 + (-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

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

  5. Számlálás példák • [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

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

  7. Lineáris keresés példák • [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)

  8. Eldöntések 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.

  9. Eldöntés 1 példák 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”.

  10. Eldöntések 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.

  11. Eldöntés 2 példák • [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?...

  12. Maximum keresés 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)!

  13. Maximum keresés

  14. Max. ker példák 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

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

  16. „Négyzetes” rendezések • 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]

  17. Maximum kiválasztásos rendezés • 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

  18. Max. ker. kivál. példa • 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)

  19. Buborék módszer 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)

  20. Buborék módszer algoritmusa • 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 • Ciklus vége • Eljárás vége

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

More Related