1 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)),

Slides:



Advertisements
Podobné prezentace
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Advertisements

Datové struktury a algoritmy Část 5 Abstraktní datové typy
Should, ought to Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Romana Petrová. Dostupné z Metodického portálu ISSN:
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM Businessland / Describing a Process 06B12 AutorLadislava Pechová Období.
Sorty Bubble, Insert a Quick
0 / 1X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
Grafické zobrazení příkladu RETURN MANAGEMENT J.Skorkovský KPH.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_178 Název školyGymnázium, Tachov, Pionýrská 1370 Autor Mgr. Eleonora Klasová Předmět.
1 / 6X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
1 / 2X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
1 / 9X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
Číslo projektu CZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_ 007 Název školy Gymnázium, Tachov, Pionýrská 1370 Autor Mgr.Stanislava Antropiusová.
y.cz Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorMgr. Roman Chovanec Název šablonyIII/2.
GA a predčasná konvergence Předčasná konvergence - výpočet konverguje příliš rychle k nějakému neoptimálnímu řešení Co způsobuje předčasnou konvergenci?
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Podpora rozvoje cizích jazyků pro Evropu 21. stol. Tento projekt je spolufinancován Evropským sociálním fondem a státním.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM Businessland / Making Contracts 06B16 AutorLadislava Pechová Období vytvořeníLeden.
Pracovní list - pro tisk Vloženo z stress.pptx Začátek.
Datové struktury a algoritmy Část 7 Vyhledávání a vyhledávací stromy Searching and Search Trees Petr Felkel.
Jméno autora: Mgr. Mária Filipová Datum vytvoření: Číslo DUMu: VY_32_INOVACE_12_AJ_EP Ročník: 1. – 4. ročník Vzdělávací oblast:Jazyk a jazyková.
The world of work Název školyGymnázium Zlín - Lesní čtvrť Číslo projektuCZ.1.07/1.5.00/ Název projektuRozvoj žákovských kompetencí.
Název a adresa školy: Střední odborné učiliště stavební, Opava, příspěvková organizace, Boženy Němcové 22/2309, Opava Název operačního programu:OP.
Pythia8 Jiří Chudoba, na základě práce a prezentací Torbjerna Sjostranda.
Educational program: Mechanic - electrician Title of program: Technical training II. class Bistable multivibrator Worked out: Bc. Chumchal Miroslav Projekt.
Tutorial: Obchodní akademie Topic: Creating Formulas Prepared by : Mgr. Zdeněk Hrdina Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/
Obchodní akademie a Střední odborná škola, gen. F. Fajtla, Louny, p.o. Osvoboditelů 380, Louny Číslo projektu CZ.1.07/1.5.00/ Číslo sady 39Číslo.
Young CYBER Lions 2015 INTEGRATED SOCIAL MEDIA CAMPAIGN TEMPLATE of your submission (Do not include this slide into your presentation. Start straight with.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Tutorial: Obchodní akademie Topic: Logical Functions Prepared by: Mgr. Zdeněk Hrdina Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/ je.
Název a adresa školy: Střední odborné učiliště stavební, Opava, příspěvková organizace, Boženy Němcové 22/2309, Opava Název operačního programu:OP.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_AJK-1.PT-06-Rodina a přátelé Název školyStřední odborná škola a Střední odborné učiliště,
Jméno autora: Mgr. Mária Filipová Datum vytvoření: Číslo DUMu: VY_32_INOVACE_16_AJ_ACH Ročník: 1. – 4. ročník Vzdělávací oblast: Jazyk a jazyková.
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
Název a adresa školy: Střední odborné učiliště stavební, Opava, příspěvková organizace, Boženy Němcové 22/2309, Opava Název operačního programu:OP.
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Zdeňka Hrstková. Slezské gymnázium, Opava, příspěvková organizace. Vzdělávací materiál.
8/1 The video task 1. The balls are made of a) steel b) iron c) wood 2. The water based liquid is there to.
Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. INTRODUCTION Použité obrázky a foto:
Číslo projektuCZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_AJK-3.PT-20-Mezilidské vztahy Název školyStřední odborná škola a Střední odborné učiliště,
EU peníze středním školám Název vzdělávacího materiálu: Verbs about clothes I Číslo vzdělávacího materiálu: AJ2-4 Šablona: II/2 Inovace a zkvalitnění výuky.
EU peníze středním školám Název vzdělávacího materiálu: B2 – Verbs – Computers Číslo vzdělávacího materiálu: ICT12-19 Šablona: III/2 Inovace a zkvalitnění.
NÁZEV ŠKOLY: Základní škola Strančice, okres Praha - východ AUTOR: Mgr. Lenka Kulhavá NÁZEV: VY_32_INOVACE_ O 09 TEMA: Angličtina ČÍSLO PROJEKTU:
Datum: Projekt: Kvalitní výuka Registrační číslo: CZ.1.07/1.5.00/ Číslo DUM: VY_22_INOVACE_9 Jméno autora: Irena Moučková Název práce:
Základní škola Velké Karlovice, okres Vsetín ŠKOLA: Základní škola Velké Karlovice, okres Vsetín Mgr. Pavla Šrubařová AUTOR: Mgr. Pavla Šrubařová VY_22_INOVACE_AKON_32_Guess_the_job.
Gymnázium, Brno, Elgartova 3 GE - Vyšší kvalita výuky CZ.1.07/1.5.00/ III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Téma: English Grammar.
An English Lesson Hodina angličtiny CZ.1.07/1.4.00/ VY_32_INOVACE_3216_AJ7 © Dagmar Marková, 2013 Masarykova základní škola Zásada, okres Jablonec.
Rodina (Family) B1 Tematická oblast
IN A SANDWICH BAR FOOD.
Jméno autora: Mgr. Jiří Kala Škola: ZŠ Náklo Datum vytvoření (období):
Výukový materiál VY_22_INOVACE_10_ Warming up – langage game
Výukový materiál zpracovaný v rámci projektu OPVK
NÁZEV ŠKOLY: Základní škola Strančice, okres Praha - východ
Dotazovací jazyk SQL - III
GE - Vyšší kvalita výuky
Jiří Šafr jiri.safr(AT)seznam.cz Poslední aktualizace 25/6/2014
FAMILY.
ŠKOLA: Gymnázium, Chomutov, Mostecká 3000, příspěvková organizace
Introduction to MS Dynamics NAV XX. (Combined Shipments)
Název školy: ZŠ Varnsdorf, Edisonova 2821, okres Děčín, příspěvková organizace Jazyk a jazyková komunikace, Anglický jazyk, Minulý čas prostý a průběhový.
ALG 07 Selection sort (Select sort) Insertion sort (Insert sort)
Výukový materiál VY_22_INOVACE_22_ Phrasal verbs. Part 2
ALG 09 Radix sort (přihrádkové řazení) Counting sort
ALG 08 Merge sort -- řazení sléváním
Introduction to MS Dynamics NAV (Expected Costs)
Revison of the 2nd semester
Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …
ALG 14 Vícedimenzionální data Řazení vícedimenzionálních dat
Střední odborná škola a Střední odborné učiliště, Vocelova 1338
Dynamické programování Optimální binární vyhledávací strom
Datum:   Projekt: Kvalitní výuka Registrační číslo: CZ.1.07/1.5.00/
Hledání k-tého nejmenšího prvku
Transkript prezentace:

1 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … DSA Různé algoritmy mají různou složitost X36DSA 2005

2 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … DSA The complexity of different algorithms varies X36DSA 2005

3 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Stable sort Andrew Cook Amundsen Brown Barbara CharlesCook sorted Sort by family name only Amundsen Brown Cook Brown Charles Barbara Andrew Amundsen Charles Barbara Andrew Amundsen Cook Brown Barbara Charles Andrew Charles Andrew Barbara sorted X36DSA 2005

4 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Unstable sort Andrew Cook Amundsen Brown Barbara CharlesCook sorted Sort by family name only Amundsen Brown Cook Brown Charles Barbara Andrew Amundsen Charles Barbara AndrewAmundsen Cook Brown Barbara Charles Andrew Charles Andrew Barbara QuickSort sorted X36DSA 2005

5 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Sorting Heap Sort Řazení haldou X36DSA 2005

6 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Heap A A B B D D E E J J M M K K O O R R T T U U Z Z a a c c b b a a c c a a b b    Heap rule X36DSA 2005

7 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Heap a a c c b b a a Terminology predcessor, parent of b b c c b b c c successor, child of, a a předchůdce, rodič následník, potomek A A B B D D (heap) top vrchol (haldy) X36DSA 2005

8 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Heap in an array A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E J J M M K K O O R R T T U U Z Z r r t t s s k 2k2k+1 r r s s t t Heap stored in an array k 2k 2k+1 succesors X36DSA 2005

D D E E K K 9 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Repair a heap A A B B D D E E J J M M K K O O R R T T U U Z Z B B J J M M O O R R T T Z Z Top removed (1) U U  Swap B ↔ U remove top last first → A A insert top 3 U > B, U > D, B < D X36DSA 2005

10 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Repair a heap B B D D E E J J M M K K O O R R T T Z Z U U  Swap J ↔ U Top removed (2) B B D D E E J J M M K K O O R R T T Z Z U U  Swap K ↔ U A A A A insert top - continues 3 U > M, U > J, J < M U > K, U > R, K < R X36DSA 2005

11 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Repair a heap B B D D E E J J M M K K O O R R T T Z Z U U Top removed (3) Heap, OK A A insert top - done 3 X36DSA 2005

12 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Repair a heap Top removed II (1) B B D D E E J J M M K K O O R R T T Z Z U U D D J J M M K K O O R R T T Z Z U U E E R > J, R > D, D < J A A remove top 1 last first → 2 1  Swap D ↔ R insert top 3 B B A A X36DSA 2005

13 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Repair a heap D D J J M M K K O O R R T T Z Z U U E E  Swap E ↔ R D D J J M M K K O O R R T T Z Z U U E E Heap, OK Top removed II (2)Top removed II (3) insert top - continues B B A A R E 3 B B A A insert top - done 3 X36DSA 2005

14 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Heap Sort A A B B D D E E J J M M K K O O R R T T U U Z Z Sorted for (i = 0; i < n; i++) a[i] = “Remove top”; Create a heap Unsorted B B D D E E J J K K O O R R U U Z Z A A M M T T A A B B D D E E J J M M K K O O R R T T U U Z Z M M O O R R T T Z Z U U I IIIII IV B B D D E E J J A A K K X36DSA 2005

15 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Heap recursive property A A B B D D E E J J M M K K O O R R T T U U Z Z is a heap  is a heap and is a heap X36DSA 2005

16 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Create a heap A A B B Z Z heap not a heap Z > A or Z > B  Swap: Z ↔ min(A,B) Z > A or Z > B  Swap: Z ↔ min(A,B) X36DSA 2005

17 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Create a heap B B Z Z heap not a heap A A CF heap X36DSA 2005

18 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Create a heap A A B B D D E E J J M M K K O O R R T T U U Z Z 1 Make a heap here… … make a heap here… … make a heap here X36DSA 2005

19 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Heap in an array A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E J J M M K K O O R R T T U U Z Z r r t t s s k 2k2k+1 r r s s t t Heap stored in an array k 2k 2k+1 succesors X36DSA 2005

20 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Create a heap in an array D D E E J J K K M M O O R R T T U U Z Z B B A A A A B B D D E E J J M M K K O O R R T T U U Z Z Not a heapUnsorted X36DSA 2005

21 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Create a heap in an array D D E E J J K K M M O O R R T T U U Z Z A A B B D D E E J J K K M M O O R R T T U U Z Z A A B B D D E E J J K K M M O O R R T T U U Z Z B B A A D D E E J J K K M M O O R R T T U U Z Z B B A A D D E E J J K K M M O O R R T T U U Z Z B B A A Creating a heap X36DSA 2005

22 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Create a heap in an array D D E E J J K K M M O O R R T T U U Z Z B B A A D D E E J J K K M M O O R R T T U U Z Z B B A A A A B B D D E E J J M M K K O O R R T T U U Z Z HeapCreating a heap X36DSA 2005

23 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Heap sort A A B B D D E E J J M M K K O O R R T T U U Z Z Heap A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E J J M M K K O O R R T T U U Z Z heap Step 1 X36DSA 2005

24 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Heap Sort A A B B D D E E J J M M K K O O R R T T U U Step k A A B B D D E E J J M M K K O O R R T T A A B B D D E E J J M M O O R R T T U U Z Z heapk Z Z U U Z Z K K X36DSA 2005

25 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Heap Sort // array: a[1]...a[n] !!!! void heapSort(Item a[], int size) { int i, j, // create a heap for (i = size/2; i > 0; i--) repairTop(array, i, size); // sort for (i = size; i > 1; i--) { swap(a, 1, i); repairTop(array, 1, i-1); } X36DSA 2005

26 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Heap Sort // array: a[1]...a[n] !!!!!! void repairTop(Item a[], int top, int bott) { int i = top; // a[2*i] and a[2*i+1] int j = i*2; // are successors of a[i] Item topVal = a[top]; // try to find a successor < topVal if ((j a[j+1])) j++; // while (successors < topVal) // move successors up while ((j a[j])) { a[i] = a[j]; i = j; j = j*2; // skip to next successor if ((j a[j+1])) j++; } a[i] = topVal; // put the topVal } X36DSA 2005

27 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Heap Sort repairTop operation worst case...log 2 (n) (n=heap size) create a heap... log 2 (n/2) + log 2 (n/2+1) log 2 (n)  (n/2)(log 2 (n)) =  (n·log(n)) sort... n-1 repairTop operations, worst case: n/2 repairTop operations log 2 (n) + log 2 (n-1)  n · log 2 (n) =  (n·log 2 (n)) total... create heap + sort = Asymptotic complexity of Heap sort is  (n·log 2 (n)) It is not a stable sort X36DSA 2005 But even best case =  (n·log 2 (n))

28 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Sorting Merge Sort Řazení sléváním X36DSA 2005

29 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Merge Sort A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E J J M M K K O O R R T T U U Z Z A A A A B B Merge two sorted arrays Compare elements X36DSA 2005

30 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Merge Sort A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E J J Merge two sorted arrays – cont. X36DSA 2005

31 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Merge Sort A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E J J K K A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E J J K K M M A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E J J K K M M O O Merge two sorted arrays X36DSA 2005

32 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Merge Sort A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E J J K K M M O O R R A A B B D D E E J J M M K K O O R R T T U U Z Z A A B B D D E E J J K K M M O O R R T T U U Z Z Merge two sorted arrays - cont Sorted Copy the rest X36DSA 2005

33 / 2The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Divide & Conquer! Divide et Impera! The problem The solution The problem The solution Solve the subproblem their work our work Merge! Divide! X36DSA 2005

Process separatel y Sorted 34 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Merge Sort A A B B D D E E J J K K M M O O R R T T U U Z Z A A B B D D E E J J K K M M O O R R T T U U Z Z B B K K M M T T U U Z Z A A D D E E J J O O R R A A B B D D E E J J M M K K O O R R T T U U Z Z Unsorted Divide! Process separately Conquer! Merge! Sort! X36DSA 2005

Sorted 35 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Merge Sort B B K K M M T T U U Z Z A A D D E E J J O O R R A A B B D D E E J J M M K K O O R R T T U U Z Z Unsorted Divide! …………………… K K U U Z Z B B M M T T A A E E J J D D O O R R K K U U Z Z B B M M T T A A E E J J R R O O D D Merge! X36DSA 2005

36 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Merge Sort void mergeSort (int a[], int aux[], int low, int high) { int half = (low+high)/2; int i; if (low >= high) return; // too small! // sort mergeSort(a, aux, low, half); // left half mergeSort(a, aux, half+1, high); // right half merge(a, aux, low, high); // merge halves // put result back to a for (i = low; i <= high; i++) a[i] = aux[i]; // optimization idea: /* swapArray(a, aux) */ // better to swap // references to a & aux! } X36DSA 2005

37 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Merge Sort void merge(int in[], int out[], int low, int high) { int half = (low+high)/2; int i1 = low; int i2 = half+1; int j = low; // compare and merge while ((i1 <= half) && (i2 <= high)) { if (in[i1] <= in[i2]) { out[j] = in[i1]; i1++; } else { out[j] = in[i2]; i2++; } j++; } // copy the rest while (i1 <= half) { out[j] = in[i1]; i1++; j++; } while (i2 <= high) { out[j] = in[i2]; i2++; j++; } } X36DSA 2005

38 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Merge Sort Asymptotic complexity  log 2 (n) times Divide! Asymptotic complexity of MergeSort is  (n·log 2 (n)) log 2 (n) times Merge!  Divide!  (1) operations Merge!  (n) operations Total  (n)·  (log 2 (n)) =  (n·log 2 (n)) operations X36DSA 2005

39 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Merge Sort Stability Divide! Does not move the elements Nepohybuje prvky Merge! ….... “ if (in[i1] <= in[i2]) { out[j] = in[i1]; …” process the left element first when merging equal values Zařaď nejprve levý prvek když slučuješ stejné hodnoty MergeSort is a stable sort X36DSA 2005

40 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Sorting Radix Sort Přihrádkové řazení X36DSA 2005

41 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Radix sort DaD DbD DCa aDb aDD CCC aDC DDb bab bbC aCb Cbb Cba B _ _ a _ _ b_ _ C_ _ D Cbb DaD aDb DCa CCC aDD DDb aDC bbC bab DbD Cba aCb UnsortedSort by 3 rd digit X36DSA 2005

42 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Radix sort B _ a _ _ b __ C __ D_ Cbb DaD aDb DCa CCC aDD DDb aDC bbC bab DbD Cba aCb Sorted by 3 rd digit Sort by 2 nd digit DCa Cba Cbb aDb DDb bab aCb CCC aDC bbC DaD aDD DbD X36DSA 2005

43 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Radix sort B a _ _ b _ _C _ _D_ _ Sorted by 2 nd digit Sort by 1 st digit DCa Cba Cbb aDb DDb bab aCb CCC aDC bbC DaD aDD DbD bab DaD Cba Cbb bbC DbD DCa aCb CCC aDb DDb aDC aDD Sorted! X36DSA 2005

Example 44 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Radix sort implementation DaD DbD DCa aDb aDD CCC aDC DDb bab bbC aCb Cbb Cba B _ _ a _ _ b _ _ C _ _ D DaD aDb DCa CCC aDD DDb aDC bbC bab DbD Cba aCb UnsortedSorted by 3 rd digit start & endnext a b C 6 Cbb D Array data structure 3 Example X36DSA 2005

45 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … d digits d loops loop RadixSort never changes order of equal values d << n ..….  (n) operations Asymptotic complexity of RadixSort is (n)(n) Summary  (d·n) operations total  (n) operations Přihrádkové řazení nemění pořadí stejných hodnot It is a stable sort X36DSA 2005

46 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … DSA Různé algoritmy mají různou složitost X36DSA 2005

47 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … DSA The complexity of different algorithms varies X36DSA 2005