17
Az oszd meg és uralkodj (Divide et Impera) programozási módszer

Az o szd meg és uralkodj (Divide et Impera) programozási módszer

  • Upload
    wanda

  • View
    84

  • Download
    1

Embed Size (px)

DESCRIPTION

Az o szd meg és uralkodj (Divide et Impera) programozási módszer. Általános bemutatás. Az oszd meg és uralkodj módszer akkor alkalmazható, ha a feladat egymástól független részfeladatokra bontható. Ötlet - PowerPoint PPT Presentation

Citation preview

Page 1: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Az oszd meg és uralkodj(Divide et Impera) programozási módszer

Page 2: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Általános bemutatás Az oszd meg és uralkodj módszer akkor

alkalmazható, ha a feladat egymástól független részfeladatokra bontható.

Ötlet a feladatot felosztjuk két vagy több az

eredetivel megegyező típusú részfeladatra. a részfeladatok megoldása elvezet az

eredeti feladat megoldásához

Page 3: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Általános bemutatás

A megoldás általános lépései

A feladat felbontása kettő vagy több

részfeladatra (Divide)

A részfeladatok külön megoldása (Impera)

Részleges eredmények kombinációja

Page 4: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Általános bemutatás A dvide et impera módszer rekurzív

jellegű, minden felbontás esetén két lehetséges eset van:

eljutunk egy részfeladathoz mely megoldása egyszerű (elemi eset, megállási feltétel)

ha nem elemi esetünk van, felbontjuk a feladatot részfeladatokra és az alprogram ezekre meghívja önmagát

Page 5: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Példák és Megoldott Feladatok

1. Maximum és Minimum keresés

Page 6: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Példa:Keresd ki egy számsorozat legnagyobb elemét!

4 7

7

Page 7: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Példa:Keresd ki egy számsorozat legnagyobb elemét!

4 7

7

9 5

99

Page 8: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Feladat: Keresd ki az alábbi számsorozat legnagyobb elemét!

1 2 3 4 5 6 7 8

5 6 1 4 -7 3 2 -1

1 2 3 4 5 6 7 8 9 10 11

5 6 1 4 -7 3 2 -1 8 2 0

Page 9: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Példa Pascalban: Keresd ki egy számsorozat legnagyobb elemét Divide et Impera modszerrel!

1 2 3 4 5 6 7 8

5 6 1 4 -7 3 2 -1

Jelölések

e – a vizsgált részsorozat első indexe

u – a vizsgált részsorozat utolsó indexe

k – ahol ketté osztjuk a sorozatot

max – résztömb maximuma

e uk

Page 10: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer
Page 11: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Példák és Megoldott Feladatok

2. Bináris Keresés

Page 12: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Példa: Keressük ki az alábbi rendezett számsorban egy x=4 értéket.

1 2 3 4 5

2 4 5 10 11

1 2 3 4 5 6 7 8 9 10 11

2 4 5 10 11 13 16 21 23 45 51

x<13

2 4x<5

x>2

4

Page 13: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Feladat: Keresd ki az alábbi számsorozatban az x=41 számot

1 2 3 4 5 6 7 8

5 6 11 14 17 23 42 49

1 2 3 4 5 6 7 8 9 10 11

5 9 10 14 18 23 32 41 48 52 60

Page 14: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Példa Pascalban: Keresd ki egy számsorozat legnagyobb elemét Divide et Impera modszerrel!

1 2 3 4 5 6 7 8

3 6 7 14 17 23 32 41

Jelölések

e – a vizsgált részsorozat első indexe

u – a vizsgált részsorozat utolsó indexe

k – ahol ketté osztjuk a sorozatot

keresett – résztömb keresett eleme

e uk

Page 15: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

Bináris keresés Rendezett sorozatban:

Elve: az intervallumfelezés Megvizsgáljuk a sorozat középső elemét: ha a keresett elem ennél nagyobb, akkor a továbbiakban csak a sorozat második felével foglalkozunk, ha nem, akkor az elejével

Page 16: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer
Page 17: Az  o szd meg  és uralkodj (Divide et Impera)  programozási módszer

FELADATOK

1. Irj Pascal Progrmot amely kikeresi egy számsorozat legnagyobb elemét Divide et Impera modszerrel!

2. Irj Pascal Progrmot amely kikeresi egy rendezett számsorozat egy adott elemét Divide et Impera modszerrel!

3. Adott egy n elemet tartalamazo sorozat. Hany prim eleme van a sorozatnak?

4. Adott egy n elem– sorozat. Hatrozzuk meg a sorozat paros elemeinek szamat