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.

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

Řadicí algoritmy autor: Tadeáš Berkman.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_AJK-4.PT-30-Problémy dnešního světa Název školyStřední odborná škola a Střední odborné.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM Businessland / Describing a Process 06B12 AutorLadislava Pechová Období.
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.
Cumulative tests Tenses Phrases. Put the verbs into the correct form I need a rest. I _______ (run) all morning! John isn´t here. He _______ (go) to the.
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.
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 / 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.
ŠKOLA: Gymnázium, Tanvald, Školní 305, příspěvková organizace ČÍSLO PROJEKTU: CZ.1.07/1.5.00/ NÁZEV PROJEKTU: Šablony – Gymnázium Tanvald ČÍSLO.
Čí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á.
The written part of the maturita exam III Škola: SOU Valašské Klobouky Ročník: Nástavbové studium Podnikání 2 Název projektu: Zkvalitnění výuky prostřednictvím.
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.
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.
ŠKOLA: Gymnázium, Tanvald, Školní 305, příspěvková organizace ČÍSLO PROJEKTU: CZ.1.07/1.5.00/ NÁZEV PROJEKTU: Šablony – Gymnázium Tanvald ČÍSLO.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_019 Název školyGymnázium, Tachov, Pionýrská 1370 Autor Mgr. Stanislava Antropiusová Předmět.
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)),
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/
Tutorial: Physics Topic: Alternator Prepared by: RNDr. Ondřej Jeřábek Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/ je spolufinancován.
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.
Jméno autora: Mgr. Mária Filipová Datum vytvoření: Číslo DUMu: VY_32_INOVACE_09_AJ_EP Ročník: 1. – 4. ročník Vzdělávací oblast:Jazyk a jazyková.
Základní škola Jakuba Jana Ryby Rožmitál pod Třemšínem Efektivní výuka pro rozvoj potenciálu žáka projekt v rámci Operačního programu VZDĚLÁVÁNÍ PRO KONKURENCESCHOPNOST.
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.
Michael Jackson Od Andrea Crkvová.
IN A HOTEL, WRITING (DESCRIBING A PHOTO) Vysoká škola technická a ekonomická v Českých Budějovicích Institute of Technology And Business In České Budějovice.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_AJK-2.PT-16-Praha Název školyStřední odborná škola a Střední odborné učiliště, Dubno.
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. Jan Rozsíval. Slezské gymnázium, Opava, příspěvková organizace. Vzdělávací materiál.
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Jan Rozsíval. Slezské gymnázium, Opava, příspěvková organizace. Vzdělávací materiál.
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.
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.
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.
Čí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ě,
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.
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í.
Anotace Cílem této prezentace je zopakovat již známou slovní zásobu a fráze na téma „Planning a party“ a dále seznámit žáky s novou slovní zásobou a zároveň.
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.
Listening VY_32_INOVACE_AJ_2_60 Multiple choice Číslo projektu: CZ.1.07./1.5.00/ Název projektu: Zlepšení podmínek pro vzdělávání na SUŠ, Ostrava.
ŠKOLA: Základní škola Velké Karlovice, okres Vsetín
DIGITÁLNÍ UČEBNÍ MATERIÁL
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
GE - Vyšší kvalita výuky
Interesting places - word formation, use of English
DIGITÁLNÍ UČEBNÍ MATERIÁL
Digitální učební materiál
Introduction to MS Dynamics NAV XX. (Combined Shipments)
ANJ - komunikační situace Ročník, obor: 4. ročník, ekonomické lyceum
ALG 07 Selection sort (Select sort) Insertion sort (Insert sort)
Živá fáze.
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
PAST CONTINUOUS MINULÝ ČAS PRŮBĚHOVÝ
Introduction to MS Dynamics NAV (Expected Costs)
Autor: Mgr. Kateřina Suková
Revison of the 2nd semester
In The Year Nejde vložit do pptx – nutno přes prohlížeč.
Introduction to MS Dynamics NAV (Non stock Items-Neskladové zboží)
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
Účetní schémata MS Dynamics NAV RTC-základy
Dynamické programování Optimální binární vyhledávací strom
Datum:   Projekt: Kvalitní výuka Registrační číslo: CZ.1.07/1.5.00/
Introduction to MS Dynamics NAV (ATP_CTP)
Hledání k-tého nejmenšího prvku
Transkript prezentace:

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 2 (n)), … Sorting Různé algoritmy mají různou složitost

2/ 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)), … Sorting The complexity of different algorithms varies X36DSA 2005

3 / 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)), … Sorting From this… X36DSA 2005

4 / 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)), … Sorting …to this! X36DSA 2005

5 / 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)), … Sorting Navrhněte a popište algoritmus pro seřazení balíčku karet. Úkolem je sestavit algoritmus tak, aby využíval co nejmenšího počtu pomocných balíčků. Smíte používat jen jednu ruku a v ní smíte držet vždy nanejvýš jednu kartu. Během řazení můžete (a musíte) odkládat karty do několika pomocných balíčků. Z každého balíčku je vidět a je známa pouze hodnota nejsvrchnější karty a to jen v případě, že leží lícem nahoru. Cvičení X36DSA 2005

6 / 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)), … Sorting Design and describe algorithm to sort a pack of playing cards The task is to construct the algorithm so that it will use as few auxiliary packs as possible. You can use only one hand and you can hold in it no more than one card any time. You can (in fact, you must) lay the cards on some additional auxiliary packs during the sort. Only the value of the uppermost card of any pack is visible and known and this only in case when it lays face up. Exercise X36DSA 2005

7 / 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)), … Sorting Selection Sort Řazení výběrem (minima nebo maxima) X36DSA 2005

8 / 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)), … Selection 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 Start Step 1 B B D D E E J J M M K K O O R R U U Z Z T T D D E E K K Z Z B B J J M M O O R R T T U U A A A A min X36DSA 2005

9 / 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)), … Selection Sort Step 2 Step 3 B B D D E E J J M M K K O O R R T T U U Z Z A A E E Z Z B B D D E E Z Z B B A A A A D D E E J J M M K K O O R R U U Z Z T T A A B B J J M M K K O O R R T T U U D D min J J M M K K O O R R T T U U X36DSA 2005

10 / 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)), … Selection Sort Step k Sorted B B D D E E J J K K B B D D E E J J K K O O R R U U Z Z A A A A M M T T k B B D D E E J J K K O O R R U U Z Z A A M M T T …... … M M T T R R U U Z Z O O min X36DSA 2005

11 / 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)), … Selection Sort for (i = 0; i < n-1; i++) { // select min jmin = i; for (j = i+1; j < n; j++) { if (a[j] < a[jmin]) { jmin = j; } // put min min = a[jmin]; a[jmin] = a[i]; a[i] = min; } X36DSA 2005

12 / 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)), … Selection Sort Step k n-kk n Select minimum ……. (n-k) tests Tests total B B D D E E J J K K A A M M T T R R U U Z Z O O min X36DSA 2005

13 / 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)), … Selection Sort Step k n-k k moves ……. 3 Moves total B B D D E E J J K K A A M M T T R R U U Z Z O O X36DSA 2005

14 / 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)), … Selection Sort Summary Tests total Moves total =  (n) Asymptotic complexity of Selection Sort is  (n 2 ) =  (n 2 ) Operations total + =  (n 2 ) X36DSA 2005

15 / 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)), … Sorting Insertion Sort Řazení vkládáním (na adekvátní pozici) X36DSA 2005

16 / 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)), … Insertion 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 Start Step 1 B B D D E E M M O O R R Z Z T T D D E E Z Z A A B B M M R R T T O O A A J J K K U U J J K K U U X36DSA 2005

17 / 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)), … Insertion Sort Step 3 B B D D E E M M O O R R Z Z T T A A J J K K U U D D E E M M O O R R Z Z T T A A J J K K U U B B D D E E M M O O R R Z Z A A J J K K U U T T D D E E M M O O R R Z Z A A J J U U T T K K B B B B Step 2 X36DSA 2005

18 / 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)), … Insertion Sort Step k D D E E Z Z A A J J B B D D E E O O R R Z Z A A J J K K U U T T B B M M K K O O R R U U T T M M Sorted B B D D E E J J K K O O R R U U Z Z A A M M T T k …... … X36DSA 2005

19 / 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)), … Insertion Sort for (i = 1; i < n; i++) { // find & make // place for a[i] insVal = a[i]; j = i-1; while ((j >= 0) && (a[j] > insVal)) { a[j+1] = a[j]; j--; } // insert a[i] a[j+1] = insVal; } X36DSA 2005

20 / 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)), … Insertion Sort Step k D D E E O O R R Z Z A A J J K K U U T T B B M M k tests ……. 1 best case k worst case (k+1)/2 average case tests + 1 = moves moves ……. 3 *) best case k+1 worst case (k+3)/2 average case *) instead of 2 X36DSA 2005

21 / 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)), … Insertion Sort Summary Tests total Moves total =  (n 2 ) average case Asymptotic complexity of Insertion Sort is O(n 2 ) (!!) n - 1 (n 2 - n)/2 =  (n 2 ) =  (n) best case worst case (n 2 + n + 2)/4 =  (n 2 ) average case 2n - 2 (n 2 + n - 2)/2 =  (n 2 ) =  (n) best case worst case (n 2 + 5n - 6)/4 Tests total X36DSA 2005

22 / 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)), … Sorting Bubble Sort Bublinkové třídění X36DSA 2005

23 / 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)), … Bubble 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 Start Phase 1 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 X36DSA 2005

24 / 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)), … Bubble Sort Phase 1 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 … etc … Phase 2 A A B B D D E E J J M M K K O O R R T T U U Z Z X36DSA 2005

25 / 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)), … Bubble Sort Phase 2 Phase 3 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 … etc … A A B B D D E E J J M M K K O O R R T T U U Z Z Z Z X36DSA 2005

26 / 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)), … Bubble Sort Phase 3 Phase n-1 … etc … 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 D D E E J J K K O O R R U U Z Z A A M M T T Sorted B B D D E E J J K K O O R R U U Z Z A A M M T T n-2n-2 X36DSA 2005

for (lastPos = n-1; lastPos > 0; lastPos--) { for (j = 0; j < lastPos-1; j++) { if (a[j] > a[j+1]) swap(a, j, j+1); 27 / 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)), … Bubble Sort Summary Tests total Moves total 0 =  (1) =  (n 2 ) best case worst case =  (n 2 ) (n-1) + (n-2) + … = Asymptotic complexity of Bubble Sort is  (n 2 ) X36DSA 2005

28 / 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)), … QuickSort Sir Charles Antony Richard Hoare C.A.R. Hoare: Quicksort. Computer Journal, Vol. 5, 1, (1962) X36DSA 2005

29 / 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

30 / 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)), … QuickSort A A B B D D E E J J M M K K O O R R T T U U Z Z Small Big A A B B D D E E J J M M K K O O R R T T U U Z Z Small M M O O R R T T U U Z Z Big Divide & Conquer! A A B B D D E E J J K K Start The idea Divide! X36DSA 2005

QuickSort 31 / 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)), … M M O O R R T T U U Z Z A A B B D D E E J J K K Two separate problems 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 Four separate problems etc… Divide! … …………………… X36DSA 2005

32 / 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)), … QuickSort Conquered! A A B B D D E E J J M M K K O O R R T T U U Z Z … … … … … … … … … … … … … … … … … 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)), … QuickSort pivot 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 ………… Init iLiR Partitioning Pivot X36DSA 2005

34/ 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)), … QuickSort 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 iLiR A A B B D D E E J J M M K K O O R R T T U U Z Z iL iR Step 1 Partitioning Pivot X36DSA 2005

35/ 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)), … QuickSort M M iLiR 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 T T U U Z Z iLiR R R Partitioning Step 2 iL Pivot X36DSA 2005

36 / 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)), … QuickSort M M Partitioning Step 3 A A B B D D E E J J M M K K O O T T U U Z Z R R iR iL iR Stop  Divide! Init iLiR A A B B D D E E J J M M K K O O T T U U Z Z R R E E Pivot X36DSA 2005

37 / 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)), … QuickSort Partitioning iLiR A A B B D D E E J J M M K K O O T T U U Z Z R R E E Step 1 A A D D J J M M K K O O T T U U Z Z R R B B E E iLiR Pivot X36DSA 2005

iR 38 / 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)), … QuickSort Partitioning E E Step 2 A A D D J J M M K K O O T T U U Z Z R R B B E E iL iR A A D D J J M M K K O O T T U U Z Z R R B B E E iL iR Stop  Divide! A A D D J J M M K K O O T T U U Z Z R R B B E E iRiL Init B B Pivot X36DSA 2005

39 / 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)), … QuickSort Partitioning A A D D J J M M K K O O T T U U Z Z R R B B E E iRiL B B A A D D J J M M K K O O T T U U Z Z R R B B E E iR iL iR Stop  A A D D J J M M K K O O T T U U Z Z R R B B E E iLiR B B Step 1 Divide! Init Pivot X36DSA 2005

40 / 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)), … QuickSort Partitioning A A D D M M K K O O U U Z Z R R B B iR B B Step 1 iL D D J J M M K K O O T T U U Z Z R R B B E E iRiL Init K K iL iR …….. == Next Partition etc… A A J J E E T T Pivot X36DSA 2005

void qSort(Item a[], int low, int high) { int iL = low, iR = high; Item pivot = a[low]; do { while (a[iL] < pivot) iL++; while (a[iR] > pivot) iR--; if (iL < iR) { swap(a,iL, iR); iL++; iR--; } else { if (iL == iR) { iL++; iR--;} } while( iL <= iR); if (low < iR) qSort(a, low, iR); if (iL < high) qSort(a, iL, high); } 41 / 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)), … QuickSort iR iL Divide! iRiL K K K K D D K K K K K K D D D D U U K K X36DSA 2005

Levý index se nastaví na začátek zpracovávaného úseku pole, pravý na jeho konec, zvolí se pivot. Cyklus: Levý index se pohybuje doprava a zastaví se na prvku vetším nebo rovném pivotovi. Pravý index se pohybuje doleva a zastaví se na prvku menším nebo rovném pivotovi. Pokud je levý index ještě před pravým, příslušné prvky se prohodí, a oba indexy se posunou o 1 ve svém směru. Jinak pokud se indexy rovnají, jen se oba posunou o 1 ve svém směru. Cyklus se opakuje, dokud se indexy neprekříží, tj. pravý se dostane pred levého. Pak nastává rekurzivní volání na úsek od začátku do pravého(!) indexu včetně a na úsek od levého(!) indexu včetně až do konce, má-li príslušný úsek délku větší než / 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)), … QuickSort X36DSA 2005

43 / 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)), … QuickSort Asymptotic complexity  (n 2 )  (n·log 2 (n)) best case worst case Tests and moves total average case “Average” complexity of QuickSort is  (n·log 2 (n)) (!!) Asymptotic complexity of QuickSort is O(n 2 ) (!!)  (n·log 2 (n)) … but! : X36DSA 2005

44 / 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)), … Sorting N2N2 N  log 2 (N) N N2N2 Effectivity comparison decele- ration (1~1sec) 3 sec 15 sec 1.5 min 13 min 1.5 hrs 14 hrs 5 days X36DSA 2005

45 / 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)), … Sort stability XbXb XbXb XcXc XcXc XaXa XaXa XbXb XbXb XcXc XcXc XaXa XaXa Stable sort does not change the order of elements with equal value. Stabilní řazení nemění pořadí prvků se stejnou hodnotou. Sort X36DSA 2005

A2A2 A2A2 A1A1 A1A1 A3A3 A3A3 46 / 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)), … Sort stability B1B1 B1B1 D1D1 D1D1 C1C1 C1C1 A1A1 A1A1 C2C2 C2C2 B2B2 B2B2 A2A2 A2A2 D2D2 D2D2 B3B3 B3B3 A1A1 A1A1 A2A2 A2A2 A3A3 A3A3 B 1 B2B2 B2B2 B3B3 B3B3 C1C1 C1C1 C2C2 C2C2 C3C3 C3C3 D1D1 D1D1 D2D2 D2D2 D3D3 D3D3 A3A3 A3A3 D3D3 D3D3 C3C3 C3C3 B2B2 B2B2 B3B3 B3B3 C3C3 C3C3 C1C1 C1C1 C2C2 C2C2 D3D3 D3D3 D2D2 D2D2 D1D1 D1D1 Select Insert Bubble B 1 D1D1 D1D1 C1C1 C1C1 A1A1 A1A1 C2C2 C2C2 B2B2 B2B2 A2A2 A2A2 D2D2 D2D2 B3B3 B3B3 A3A3 A3A3 D3D3 D3D3 C3C3 C3C3 Stable implementation QuickSort -- Always!! Select Insert Bubble Unstable implementation -- X36DSA 2005

47 / 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)), … Sorting Různé algoritmy mají různou složitost X36DSA 2005

48 / 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)), … Sorting The complexity of different algorithms varies X36DSA 2005