Algoritmusok és Adatszerkezetek I.

Slides:



Advertisements
Hasonló előadás
TÖMÖRÍTÉS. Fogalma A tömörítés egy olyan eljárás, amelynek segítségével egy fájlból egy kisebb fájl állítható elő. A tömörítési arány függ a fájl típusától,
Advertisements

Az IKER önértékelő IKER társadalmasítás workshop Budapest, április 12.
NRC Omnibusz – november. Okostelefon használat  A éves internetezők 64%-a használ okostelefont (saját/céges okostelefont, vagy más készülékét).
„ Tágas városom kis lakásra cserélem” Hajléktalanok önálló lakhatásának elősegítése, munkaerő-piaci integrációjának megalapozása TÁMOP /
Projekt módszer óvodai alkalmazásának egy lehetséges változata Encsen „Jó gyakorlat” bemutatása Sárospatak, Léportné Temesvári Ildikó és Zsiros.
© Gács Iván (BME) 1/26 Energia és környezet NO x keletkezés és kibocsátás.
Gazdasági informatika - bevezető
Rendezésen alapuló kétmenetes algoritmusok
vizuális megismerés – vizuális „nyelv” vizuális kultúra
Muraközy Balázs: Mely vállalatok válnak gazellává?
Alhálózat számítás Osztályok Kezdő Kezdete Vége Alapértelmezett CIDR bitek alhálózati maszk megfelelője A /8 B
DIGITÁLIS KÉPFELDOLGOZÁS ALAPFOGALMAK
Scilab programozás alapjai
Adatok importálása, rendezése és szűrése
Észlelés és egyéni döntéshozatal, tanulás
LabVIEW bevezetéstől a feszültség-áram karakterisztikáig Vida Andrea
Mediánok és rendezett minták
Algoritmusok és Adatszerkezetek I.
Nagyméretű kópiaszám változás (CNV) detekciója teljes genom asszociációs vizsgálatokban Az ábrán egy kromoszómán (alsó sáv) mért intenzitások aránya (B.
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Hogyan viszonyuljunk a médiaeszközök használatához a válságból való kilábalás után? Szuromi Péter - ZenithOptimedia.
Monte Carlo integrálás
Szervezetfejlesztés II. előadás
Rangsorolás tanulása ápr. 13..
Kockázat és megbízhatóság
A mozgási elektromágneses indukció
Hipotézisvizsgálat.
Visual Studio Code Metrics
Piaci kockázat tőkekövetelménye
Számításelmélet 1.
V. Optimális portfóliók
Tartalékolás 1.
Nyelvek típusossága.
INFOÉRA 2006 Véletlenszámok
Számítógépek felépítése 6. előadás virtuális tárkezelés
? A modell illesztése a kísérleti adatokhoz
Business Mathematics
középfokú felvételi eljárás
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
STRUKTURÁLT SERVEZETEK: funkció, teljesítmény és megbízhatóság
Tilk Bence Konzulens: Dr. Horváth Gábor
Adatbányászati szemelvények MapReduce környezetben
AVL fák.
Minimális feszítőfák Definíció: Egy irányítatlan gráf feszítőfája a gráfnak az a részgráfja, amely fagráf és tartalmazza a gráf összes cúcspontját. Definíció:
A csoportok tanulása, mint a szervezeti tanulás alapja
Bináris kereső fák Definíció: A bináris kereső fa egy bináris fa,
Algoritmusok és Adatszerkezetek I.
SZAKKÉPZÉSI ÖNÉRTÉKELÉSI MODELL I. HELYZETFELMÉRŐ SZINT FOLYAMATA 8
Járműtelepi rendszermodell 2.
További rendező és kereső algoritmusok
1.5. A diszkrét logaritmus probléma
I. HELYZETFELMÉRÉSI SZINT FOLYAMATA 3. FEJLESZTÉSI FÁZIS 10. előadás
9-10.-es bemeneti mérések és a fejlesztő munkánk
Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat
Tesztgenerálás a gyakorlatban Az IntelliTest és ami mögötte van
Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
Mintaillesztés Knuth-Morris-Pratt (KMP) algoritmus
Készítette: Kiss Kinga
Körmentes irányított gráfban legrövidebb utak
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Edényrendezés - RADIX „vissza” - bináris számokra
Algoritmusok.
AZ ORSZÁGOS KOMPETENCIAMÉRÉSEK MEGSZERVEZÉSE A TANODÁBAN
Gyermekekkel a mediáció szemszögéből
A (bináris) kupac adatstruktúra
Stratégiai gondolkodás
Előadás másolata:

Algoritmusok és Adatszerkezetek I. Rendező algoritmusok 2017. október 31.

Rendezési feladat (sort) Bemenet: egy n számból álló a1, a2, . . . , an tömb. Kimenet: a bemenő tömb elemeinek olyan a1, a2, . . . , an permutációja (átrendezése), amelyre a1 ≤ a2 ≤ . . . ≤ an

Miért fontosak a rendező algoritmusok? Gyakran használt részfeladat Számtalan megoldás → különböző szituációkban más és más (saját?) Sok probléma trivilás vagy gyors ha rendezett a bemenet → 0. lépésben rendezzünk medián megtalálása bináris keresés

Beszúró rendezés (insertion sort)

Összefésülő rendezés (merge sort) Felosztás: Az n elemű rendezendő sorozatot felosztja két n/2 elemű részsorozatra. Uralkodás: A két részsorozatot összefésülő rendezéssel rekurzív módon rendezi. Összevonás: Összefésüli a két részsorozatot, létrehozva a rendezett választ.

Összefésülő rendezés

Összefésülő rendezés futási ideje – Mester módszer a=2 b=2 f(n)=n f(n) = Θ(nlog22) = Θ(n) 2. eset T(n) = Θ(nlogn) https://visualgo.net/en/sorting

Helyben rendezés Rendező algoritmusok memóriaigénye Beszúró rendezés O(1) Összefésülő rendezés O(n) Helyben rendezés: bemeneti tömbön felül legfeljebb konstans méretű tár

Kupac https://visualgo.net/en/heap

Kupacrendezés (heap sort) O(nlogn) Helyben rendezés

Rendezés bináris keresőfával (tree sort) if x≠NIL then FABEJÁRÁS(bal[x]) muvelet(kulcs[x]) FABEJÁRÁS(jobb[x]) 2 3 5 5 7 8 2 3 5 5 7 8 piros-fekete fával: O(nlogn) Helyben rendezés, de pointerek miatt nagyobb tárigény

Gyorsrendezés (quick sort) Felosztás: Az A[p…r] tömböt két (esetleg üres) A[p…q-1] és A[q+1…r] résztömbre osztjuk úgy, hogy az A[p… q−1] minden eleme kisebb vagy egyenlő A[q]-nál és A[q+1…r] minden eleme nagyobb A[q]-nál. A q index kiszámítása része a felosztó eljárásnak

Gyorsrendezés (quick sort) Uralkodás: Az A[p…q−1] és A[q+1…r] résztömböket a gyorsrendezés rekurzív hívásával rendezzük. Összevonás: helyben rendezés, nincs szükség egyesítésre

pivot (őrszem) bárhogyan választhajuk, pl. első elem vagy véletlen

Gyorsrendezés helyessége

Gyorsrendezés futásideje Legrosszabb eset: minden Feloszt egy 0 és egy n-1 méretű résztömbre oszt Legjobb eset: minden Feloszt felezi a tömböt

Gyorsrendezés futásideje Átlagos eset: közelebb a legjobb esethez bármilyen állandó arányú felosztás esetén O(nlogn), pl. nem baj ha vannak rossz felosztások

Összehasonlító rendezések Összehasonlító rendezés: rendezéshez elemek párjainak < = > műveleteit használjuk Eddigi rendező algoritmusok mind összehasonlító rendezések voltak

Összehasonlító rendezések futásidejének alsó korlátja Bármely összehasonlító rendező algoritmus a legrosszabb esetben Ω(nlogn) összehasonlítást végez!

Leszámláló rendezés (counting sort) HA az n bemeneti elem mindegyike 0 és k közötti egész szám, ahol k egy egész. Θ(n+k) tár: n+k

Rendezések stabilitása Egy rendezés stabil ha az azonos értékű elemek ugyanabban a sorrendben jelennek meg a kimeneti tömbben, mint ahogyan a bemeneti tömbben szerepeltek.

Számjegyes rendezés (radix sort) Rendezzünk dátumokat év, hónap, nap szerint! Megoldás1: összehasonlító rendezés Megoldás2: 3 db stabil rendezés először napok, majd hónapok, végül évek szerint

Számjegyes rendezés (radix sort) Számjegyes rendezés: legalacsonyabb helyiértéktől legmagasabbig minden lépésben egy stabil renezés

Edényrendezés (bucket sort) HA a rendezendő tömb elemeinek eloszlása egyenletes

Edényrendezés (bucket sort) ni az i-edik edénybe eső elemek számának várható értéke

Engem válassz ha közel rendezett a tömb vagy nagyon kicsi (n<10) bemenet esetén! Legjobb Átlagos Legrosszabb Tár Stabil Beszúró n n2 1 Összefésülő n log n Kupac Bináris Fa Gyors Leszámoló n+k nk Számjegyes d(n+k) Edény Ha stabilitásra vágysz engem válassz! Csak hozz magaddal memóriát is… Elvileg én vagyok a gyorsrendezés legnagyobb riválisa, de túl sok cserét csinálok a gyakorlatban  Engem senki sem szeret mert a gyakorlatban fákat memóriában tárolni drága  Ha nem tudsz semmit az adatról én vagyok általában a leggyorsabb (összehasonlító rendezés)! Viszont nem vagyok stabil… Engem válassz ha a lehetséges értékek halmaza kicsi (k)! Én segítek ha speciális struktúrát (pl. dátum) kell rendezned! Ha az értékek eloszlása egyenletes én vagyok a legjobb!