Maturitní téma: Programovací jazyk JAVA

Rozměr: px
Začít zobrazení ze stránky:

Download "Maturitní téma: Programovací jazyk JAVA"

Transkript

1 Maturitní téma: Programovací jazyk JAVA Insert Sort (třídění vkládáním) 1. Jako setříděnou část označíme první prvek pole. Jako nesetříděnou část označíme zbytek pole. 2. Vezmeme první (libovolný) prvek z nesetříděné části. 3. Tento prvek postupně porovnáváme s prvky v setříděnné části a vložíme jej sem tak, aby tato část zůstala setříděná. 4. Je-li v nesetříděné části nějaký prvek pokračujeme krokem 2. Jinak algoritmus končí. Příklad:

2 Binary Insert Sort (třídění binárním vyhledáváním) 1. Jako setříděnou část označíme první prvek pole. Jako nesetříděnou část označíme zbytek pole. 2. Vezmeme první (libovolný) prvek z nesetříděné části. 3. Prvek vložíme na do setříděné části tak, že pozici nalezneme pomocí binárního vyhledání. 4. Je-li v nesetříděné části nějaký prvek pokračujeme krokem 2. Jinak algoritmus končí. Select Sort (třídění přímým výběrem) 1. Najdeme nejmenší prvek v poli. 2. Zaměníme ho s prvkem na první pozici. Setříděná část teď obsahuje pouze tento jeden prvek. Zbytek pole je nesetříděná část. 3. V nesetříděné části najdeme nejmenší prvek a vyměníme jej s prvním prvkem v nesetříděné části. Tím se tento prvek dostane do setříděné části. 4. Je-li v nesetříděnné části více jak jeden prvek pokračujeme krokem Obsahuje-li nesetříděná část pouze jeden prvek algoritmus končí. Příklad

3 Shell Sort (třídění vkládáním s ubývajícím krokem) 1. Zvolíme krok 2. V i-tém kroku třídíme prvky ve vzdélenosti h_i, pro i = t, t-1,...,0; h_i+1 > h_i; h1 = 0; t >0 Příklad:

4 BubbleSort Příklad: 1. Posloupnost rozdělíme na setříděnou a nesetříděnou část. 2. Porovnáváme sousední prvky v nesetříděné části. Pokud nejsou ve správném pořadí, tak je prohodíme. 3. Opakujeme krok 2, dokud nesetříděnné část obsahuje více jak jeden prvek

5 QuickSort Příklad: 1. Tříděné pole rozdělíme pokud možno na dvě stejné disjunktní části. Rozdělení realizujeme tak, že zvolíme prvek tříděného pole (pivota). 2. Prvky vlevo od pivota by měli být menší než pivot a prvky vpravo od pivota by měli být větší jak pivot. 3. Procházíme levou část než narazíme na prvek větší než pivot. 4. Procházíme pravou část než narazíme na prvek menší než pivot. 5. Tyto prvky prohodíme. Pokud takové prvky neexistují prohazujeme pivota. 6. Rekurzivně pak dotřídíme pravou část pole a levou část pole

6 RadixSort 1. Představíme so čísla ve dvojkové soustavě o stejném počtu bitů. 2. Zvolíme číslo 2 b. 3. Procházíme pole zleva a hledáme prvek začínající jedničkovým bitem. (větší jak 2 b ) 4. Procházíme pole zprava a hledáme prvek začínající nulovým bitem.(menší jak 2 b ) 5. Prvky prohodíme. 6. Rekurzivně dotřídíme zbytek pole. DobSort Jedná se o spojení ShellSortu a BubbleSortu. PigeonholeSort (přihrádkové třídění) 1. Zavedeme m prázdných přihrátek. 2. Procházíme posloupnost prvků zleva a prvek a i dáme do přihrátky a i 3. Zpojíme všechny přihrátky.

7 Pole Statické pole Statickým polem nazýváme pole, které v průběhu zpracování nemůže měnit počet prvků. Dynamické pole Dynamickým polem nazýváme pole, které v průběhu zpracování může měnit počet prvků. Setříděné pole Je pole, které i po vložení nového prvku zůstává setříděné

8 Zásobník U zásobníku máme přesně dán způsob vkládání a mazání prvků. U zásobníku je uplatněn princip LIFO (last-in, first-out) tzn. prvek, který vložíme jako poslední, bude jako první smazán(vyjmut). Operace vložení do zásobníku se nazývá Push, operace vyjmutí se nazývá Pop. Zásobník dále implementuje tyto metody Empty - zjistí, zda je zásobník prázdný, Top - vrací prvek na vrcholu (poslední prvek), tento prvek ale nemaže. Pro implementaci Zásobníku používáme jeden ukazatel vrchol zásobníku (stack pointer) - ukazuje na aktuální (poslední) prvek v zásobníku.

9 Fronta Fronta je další strukturou s přesně daným způsobem vkládání a mazání prvků. U fronty je uplatněn princip FIFO (first-in, first-out) tzn. prvek, který vložíme jako první, bude jako první smazán(vyjmut). Operace vložení do fronty se nazývá Put, operace odebrání se nazývá Get. Fronta dále implementuje tyto metody Empty - zjistí, zda je fronta prázdná. Pro implementaci fronty používáme dvou ukazatelů hlavu fronty (head) - ukazuje na prvek, který je na řadě pro odebrání. Ocas fonty (tail) - ukazuje na poslední prvek ve frontě.

10 MergeSort Tento algoritmus aplikuje postup "rozděluj a panuj" Algoritmus Příklad 1. Rozdělíme pole na dvě stejné části A a B. 2. Části A a B seřadíme. 3. Tyto seřazené části spojíme následujícím způsobem: o je-li prvek a z A menší nebo roven prvku b z B pak do výsledné množiny zapíšeme prvek a z A o o jinak zapíšeme do výsledné množiny prvek b z B obsahují-li množiny A a B nějaké prvky provádíme stále předchozí dva kroky

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Třídění, vyhledávání Daniela Szturcová

Více

Algoritmy I. Třídění ALGI 2010/2011

Algoritmy I. Třídění ALGI 2010/2011 Algoritmy I Třídění 1 ALGI 2010/2011 Třídící problém Je dána množina A = {a 1,a 2,...,a n }. Je potřebné najít permutaci π těchto n prvků, která zobrazuje danou posloupnost do neklesající posloupnosti

Více

Zadání k 2. programovacímu testu

Zadání k 2. programovacímu testu Zadání k 2. programovacímu testu Úvod do programovacích jazyků (Java) 4.12.2008 00:08 Michal Krátký Katedra informatiky Technická univerzita Ostrava Historie změn, příklady: 21 Poznámka: Pokud není řečeno

Více

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double

Více

Složitost UPR 2008/09 1

Složitost UPR 2008/09 1 Složitost UPR 2008/09 1 Ohodnocení algoritmu Jak porovnávat efektivitu algoritmů? Požadavky na paměť Požadavky na rychlost výpočtu Asymptotická složitost UPR 2008/09 2 Měření algoritmu Dvě míry: čas x

Více

Základní datové struktury

Základní datové struktury Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013

Více

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3 DobSort Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),

Více

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí: Metody řazení ve vnitřní a vnější paměti. Algoritmy řazení výběrem, vkládáním a zaměňováním. Heapsort, Shell-sort, Radix-sort, Quicksort. Řazení sekvenčních souborů. Řazení souborů s přímým přístupem.

Více

NPRG030 Programování I, 2018/19 1 / :03:07

NPRG030 Programování I, 2018/19 1 / :03:07 NPRG030 Programování I, 2018/19 1 / 20 3. 12. 2018 09:03:07 Vnitřní třídění Zadání: Uspořádejte pole délky N podle hodnot prvků Měřítko efektivity: * počet porovnání * počet přesunů NPRG030 Programování

Více

Lineární datové struktury

Lineární datové struktury Lineární datové struktury doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Lineární datové

Více

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více

V případě jazyka Java bychom abstraktní datový typ Time reprezentující čas mohli definovat pomocí třídy takto:

V případě jazyka Java bychom abstraktní datový typ Time reprezentující čas mohli definovat pomocí třídy takto: 20. Programovací techniky: Abstraktní datový typ, jeho specifikace a implementace. Datový typ zásobník, fronta, tabulka, strom, seznam. Základní algoritmy řazení a vyhledávání. Složitost algoritmů. Abstraktní

Více

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

Více

TÉMATICKÝ OKRUH TZD, DIS a TIS

TÉMATICKÝ OKRUH TZD, DIS a TIS TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 13. Otázka : Základní datové struktury (pole, zásobník, binární strom atd.), datové struktury vhodné pro fyzickou implementaci relačních dat v SŘBD (hašovací

Více

3 Algoritmy řazení. prvku a 1 je rovněž seřazená.

3 Algoritmy řazení. prvku a 1 je rovněž seřazená. Specifikace problému řazení (třídění): A... neprázdná množina prvků Posl(A)... množina všech posloupností prvků z A ... prvky množiny Posl(A) q... délka posloupnosti Posl(A), přičemž Delka()

Více

Anotace. Spojové seznamy, haldy. AVL-stromy, A-B stromy. Martin Pergel,

Anotace. Spojové seznamy, haldy. AVL-stromy, A-B stromy. Martin Pergel, Anotace Spojové seznamy, fronta a zásobník. Vyvážené binární stromy, AVL-stromy, červeno-černé stromy, A-B stromy. Hashování, haldy. Typologie spojových seznamů jednosměrný a obousměrný prvek ukazuje jen

Více

Dynamické datové struktury III.

Dynamické datové struktury III. Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Složitost algoritmů. Třídění Přednáška 8 16. listopadu 2009 Který algoritmus je "lepší"? Různé algoritmy, které řeší stejnou úlohu zbytek = p % i; zbytek = p - p/i*i;

Více

Pole a kolekce. v C#, Javě a C++

Pole a kolekce. v C#, Javě a C++ Pole a kolekce v C#, Javě a C++ C# Deklarace pole typ_prvku_pole[] jmeno_pole; Vytvoření pole jmeno_pole = new typ_prvku_pole[pocet_prvku_pole]; Inicializace pole double[] poled = 4.8, 8.2, 7.3, 8.0; Java

Více

Prioritní fronta, halda

Prioritní fronta, halda Prioritní fronta, halda Priority queue, heap Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 26 Prioritní fronta Halda Heap sort 2 / 26 Prioritní fronta (priority queue) Podporuje

Více

Algoritmizace řazení Bubble Sort

Algoritmizace řazení Bubble Sort Algoritmizace řazení Bubble Sort Cílem této kapitoly je seznámit studenta s třídícím algoritmem Bubble Sort, popíšeme zde tuto metodu a porovnáme s jinými algoritmy. Klíčové pojmy: Třídění, Bubble Sort,

Více

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT binární vyhledávání a bst Karel Horák, Petr Ryšavý 23. března 2016 Katedra počítačů, FEL, ČVUT Příklad 1 Naimplementujte binární vyhledávání. Upravte metodu BinarySearch::binarySearch. 1 Příklad 2 Mysĺım

Více

vyhledávací stromové struktury

vyhledávací stromové struktury vyhledávací algoritmy Brute Force Binary Search Interpolation Search indexové soubory Dense index, Sparse index transformační funkce Perfect Hash, Close Hash Table, Open Hash Table vyhledávací stromové

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Spojová implementace lineárních datových struktur

Spojová implementace lineárních datových struktur Spojová implementace lineárních datových struktur doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB

Více

Fronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4

Fronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4 Fronta (Queue) Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Fronta uplatňuje mechanismus přístupu FIFO first

Více

Dynamické datové struktury I.

Dynamické datové struktury I. Dynamické datové struktury I. Seznam. Fronta. Zásobník. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 17. Řadící algoritmy Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2

Více

ABSTRAKTNÍ DATOVÉ TYPY

ABSTRAKTNÍ DATOVÉ TYPY Jurdič Radim ABSTRAKTNÍ DATOVÉ TYPY Veškeré hodnoty, s nimiž v programech pracujeme, můžeme rozdělit do několika skupin zvaných datové typy. Každý datový typ představuje množinu hodnot, nad kterými můžeme

Více

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce Universita Pardubice Fakulta elektrotechniky a informatiky Mikroprocesorová technika Semestrální práce Jméno: Chmelař Pavel Datum: 14. 5. 2008 Úkol: Příklad č. 1 V paměti dat je uložen blok 8 b čísel se

Více

Třídící algoritmy. Insert Sort. Bubble Sort. Select Sort. Shell Sort. Quick Sort. Merge Sort. Heap Sort.

Třídící algoritmy. Insert Sort. Bubble Sort. Select Sort. Shell Sort. Quick Sort. Merge Sort. Heap Sort. Třídící algoritmy. Insert Sort. Bubble Sort. Select Sort. Shell Sort. Quick Sort. Merge Sort. Heap Sort. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká

Více

Šablony, kontejnery a iterátory

Šablony, kontejnery a iterátory 7. října 2010, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 21 Šablona funkce/metody Šablona je obecný popis (třídy, funkce) bez toho, že by

Více

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 Úlohy- 2.cvičení 1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 2. Převeďte dané desetinné číslo do dvojkové soustavy (DEC -> BIN): a) 0,8125 10 b) 0,35 10

Více

Šablony, kontejnery a iterátory

Šablony, kontejnery a iterátory 11. března 2015, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 31 Obsah přednášky 1 Šablony 2 Abstraktní datové struktury 3 Iterátory 4 Array

Více

2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky

2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky 25 Pole Datová struktura kolekce elementů (hodnot či proměnných), identifikovaných jedním nebo více indexy, ze kterých

Více

Kolekce, cyklus foreach

Kolekce, cyklus foreach Kolekce, cyklus foreach Jen informativně Kolekce = seskupení prvků (objektů) Jednu již známe pole (Array) Kolekce v C# = třída, která implementuje IEnumerable (ICollection) Cyklus foreach ArrayList pro

Více

Třídění a vyhledávání Searching and sorting

Třídění a vyhledávání Searching and sorting Třídění a vyhledávání Searching and sorting Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 1 / 33 Vyhledávání Třídění Třídící algoritmy 2 / 33 Vyhledávání Searching Mějme posloupnost (pole)

Více

bfs, dfs, fronta, zásobník, prioritní fronta, halda

bfs, dfs, fronta, zásobník, prioritní fronta, halda bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 20. září 2016 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší

Více

IAJCE Přednáška č. 9. int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) { // nikoli 0 if (Pole[i] > max) {

IAJCE Přednáška č. 9. int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) { // nikoli 0 if (Pole[i] > max) { Vyhledání extrému v poli použito v algoritmech řazení hledání maxima int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) // nikoli 0 if (Pole[i] > max) max = pole[i];

Více

Stromy. Jan Hnilica Počítačové modelování 14

Stromy. Jan Hnilica Počítačové modelování 14 Stromy Jan Hnilica Počítačové modelování 14 1 Základní pojmy strom = dynamická datová struktura, složená z vrcholů (uzlů, prvků) propojených hranami hrany chápeme jako orientované, tzn. vedou z uzlu A

Více

bfs, dfs, fronta, zásobník, prioritní fronta, halda

bfs, dfs, fronta, zásobník, prioritní fronta, halda bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 19. září 2017 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší

Více

Řazení. Uspořádat množinu prvků obsahujících klíč podle definovaného kriteria.

Řazení. Uspořádat množinu prvků obsahujících klíč podle definovaného kriteria. Řazení Problém řazení: Uspořádat množinu prvků obsahujících klíč podle definovaného kriteria. Až 30% času běžného počítače. Příklad: Mějme zjistit zda jsou v posloupnosti prvků, například celých čísel,

Více

TGH07 - Chytré stromové datové struktury

TGH07 - Chytré stromové datové struktury TGH07 - Chytré stromové datové struktury Jan Březina Technical University of Liberec 1. dubna 2014 Prioritní fronta Datová struktura s operacemi: Odeber Minum (AccessMin, DeleteMin) - vrat prvek s minimálním

Více

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39 Základy algoritmizace Michal Krátký 1, Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Základy algoritmizace, 2006/2007 Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

Více

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy Volné stromy Úvod do programování Souvislý, acyklický, neorientovaný graf nazýváme volným stromem (free tree). Často vynecháváme adjektivum volný, a říkáme jen, že daný graf je strom. Michal Krátký 1,Jiří

Více

A4B33ALG 2010/05 ALG 07. Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated. Quicksort.

A4B33ALG 2010/05 ALG 07. Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated. Quicksort. A4B33ALG 2010/05 ALG 07 Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated Quicksort Stabilita řazení 1 Selection sort Neseřazeno Seřazeno Start T O U B J R M A K D Z E min

Více

IB111 Úvod do programování skrze Python

IB111 Úvod do programování skrze Python Vyhledávání, řazení, složitost IB111 Úvod do programování skrze Python 2012 Otrávené studny 8 studen, jedna z nich je otrávená laboratorní rozbor dokáže rozpoznat přítomnost jedu ve vodě je drahý (je časově

Více

Lineární datové struktury

Lineární datové struktury Lineární datové struktury doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 5. března 2019 Jiří Dvorský (VŠB TUO) Lineární datové

Více

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání Select sort: krok 1: výběr klíče z n prvků vyžaduje 1 porovnání krok 2: výběr klíče z 1 prvků vyžaduje 2 porovnání krok 3: výběr klíče z 2 prvků vyžaduje 3 porovnání atd. celkem porovnání Zlepšení = použít

Více

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

Prohledávání do šířky = algoritmus vlny

Prohledávání do šířky = algoritmus vlny Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé

Více

Algoritmizace I. Ak. rok 2015/2016 vbp 1. ze 132

Algoritmizace I. Ak. rok 2015/2016 vbp 1. ze 132 Ak. rok 2015/2016 vbp 1. ze 132 Ing. Vladimír Beneš, Ph.D. vedoucí katedry Petrovický K101 katedra informatiky a kvantitativních metod E-mail: vbenes@bivs.cz Telefon: 251 114 534, 731 425 276 Konzultační

Více

Konstruktory a destruktory

Konstruktory a destruktory Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,

Více

Datové struktury 1: Základní datové struktury

Datové struktury 1: Základní datové struktury Datové struktury 1: Základní datové struktury prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní

Více

1 Úvod do Turbo Pascalu

1 Úvod do Turbo Pascalu 1 Úvod do Turbo Pascalu 1.1 Klávesové zkratky TP - spuštění TP : tp.exe, bp.exe, tpx.exe apod. - nápověda: F1 - volá vysvětlení (help) Ctrl + F1 - help podle polohy kurzoru Alt + F1 - vrací předcházející

Více

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů: Úloha č.: max. bodů: skut. bodů: 1 2 3 4 5 6 součet cvičení celkem 20 12 20 20 14 14 100 známka UPOZORNĚNÍ : a) Písemná zkouška obsahuje 6 úloh, jejichž řešení musí být vepsáno do připraveného formuláře.

Více

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel

Více

Rekurze a rychlé třídění

Rekurze a rychlé třídění Rekurze a rychlé třídění Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 54 Rekurze Rychlé třídění 2 / 54 Rekurze Recursion Rekurze = odkaz na sama sebe, definice za pomoci sebe

Více

Složitosti základních operací B + stromu

Složitosti základních operací B + stromu Složitosti základních operací B + stromu Radim Bača VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky ŠKOMAM 2010-1- 28/1/2010 Složitosti základních operací B +

Více

5 Rekurze a zásobník. Rekurzivní volání metody

5 Rekurze a zásobník. Rekurzivní volání metody 5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení

Více

ADT STROM Lukáš Foldýna

ADT STROM Lukáš Foldýna ADT STROM Lukáš Foldýna 26. 05. 2006 Stromy mají široké uplatnění jako datové struktury pro různé algoritmy. Jsou to matematické abstrakce množin, kterou v běžném životě používáme velice často. Příkladem

Více

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Programování 3. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Implementace zásobníku a fronty pomocí

Více

Předmět: Algoritmizace praktické aplikace

Předmět: Algoritmizace praktické aplikace Předmět: Algoritmizace praktické aplikace Vytvořil: Roman Vostrý Zadání: Vytvoření funkcí na stromech (reprezentace stromu haldou). Zadané funkce: 1. Počet vrcholů 2. Počet listů 3. Součet 4. Hloubka 5.

Více

Základy řazení. Karel Richta a kol.

Základy řazení. Karel Richta a kol. Základy řazení Karel Richta a kol. Přednášky byly připraveny s pomocí materiálů, které vyrobili Marko Berezovský, Petr Felkel, Josef Kolář, Michal Píše a Pavel Tvrdík Katedra počítačů Fakulta elektrotechnická

Více

Anotace. pointery (pars prima). Martin Pergel,

Anotace. pointery (pars prima). Martin Pergel, Anotace Základní třídicí algoritmy, jednotky oddělený překlad, pointery (pars prima). Problém třídění jednoduché třídicí algoritmy Bublinkové třídění (BubbleSort), zatřid ování alias třídění přímým vkládáním

Více

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach vlož do fronty kořen opakuj, dokud není fronta prázdná 1. vyber uzel z fronty a zpracuj jej 2. vlož do fronty levého následníka

Více

Datový typ prioritní fronta Semestrální práce z předmětu 36PT

Datový typ prioritní fronta Semestrální práce z předmětu 36PT Datový typ prioritní fronta Semestrální práce z předmětu 36PT Martin Tůma Cvičení 113, Út 18:00 22. května 2004 Specifikace problému Často potřebujeme přístup k informacím, tak aby tyto byly seřazeny podle

Více

Algoritmy II. Otázky k průběžnému testu znalostí

Algoritmy II. Otázky k průběžnému testu znalostí Algoritmy II Otázky k průběžnému testu znalostí Revize ze dne 19. února 2018 2 Lineární datové struktury 1 1. Vysvětlete co znamená, že zásobník představuje paměť typu LIFO. 2. Co je to vrchol zásobníku?

Více

Da D to t v o é v ty t py IB111: Datové typy

Da D to t v o é v ty t py IB111: Datové typy Datové typy IB111: Datové typy Data a algoritmizace jaká data potřebuji pro vyřešení problému? jak budu data reprezentovat? jaké operaci s nimi potřebuji provádět? Navržení práce s daty je velice důležité

Více

Abstraktní datové typy

Abstraktní datové typy Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní datové typy BI-PA2, 2011, Přednáška 10 1/27 Abstraktní datové typy Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky,

Více

Číselné soustavy a převody mezi nimi

Číselné soustavy a převody mezi nimi Číselné soustavy a převody mezi nimi Základní požadavek na počítač je schopnost zobrazovat a pamatovat si čísla a provádět operace s těmito čísly. Čísla mohou být zobrazena v různých číselných soustavách.

Více

Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol. Stromy Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2018, B6B36DSA 01/2018, Lekce 9 https://cw.fel.cvut.cz/wiki/courses/b6b36dsa/start

Více

IB111 Úvod do programování skrze Python

IB111 Úvod do programování skrze Python Vyhledávání, řazení, složitost IB111 Úvod do programování skrze Python 2014 1 / 48 Otrávené studny 8 studen, jedna z nich je otrávená laboratorní rozbor dokáže rozpoznat přítomnost jedu ve vodě je drahý

Více

Programování v C++ 2, 4. cvičení

Programování v C++ 2, 4. cvičení Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva

Více

ADT/ADS = abstraktní datové typy / struktury

ADT/ADS = abstraktní datové typy / struktury DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní

Více

PROGRAMOVÁNÍ. Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky.

PROGRAMOVÁNÍ. Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky. Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky. V průběhu budou vysvětlena následující témata: 1. Dynamicky alokovaná paměť 2. Jednoduché

Více

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012 Obecná informatika Přednášející Putovních přednášek Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Podzim 2012 Přednášející Putovních přednášek (MFF UK) Obecná informatika Podzim 2012 1 / 18

Více

Základní informace o předmětu Otázka:

Základní informace o předmětu Otázka: Základní informace o předmětu Otázka: Proč vůbec porovnávat algoritmy? Vlastnosti algoritmů přirozenost a stabilita algoritmu časová náročnost algoritmu asymetrická a asymptotická časová náročnost algoritmů

Více

13. Třídící algoritmy a násobení matic

13. Třídící algoritmy a násobení matic 13. Třídící algoritmy a násobení matic Minulou přednášku jsme probírali QuickSort, jeden z historicky prvních třídících algoritmů, které překonaly kvadratickou složitost aspoň v průměrném případě. Proč

Více

Stromy, haldy, prioritní fronty

Stromy, haldy, prioritní fronty Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík

Více

Zásobník (LIFO) Opakem zásobníku LIFO je fronta FIFO (First In, First Out první dovnitř, první ven)

Zásobník (LIFO) Opakem zásobníku LIFO je fronta FIFO (First In, First Out první dovnitř, první ven) Zásobník (LIFO) Je dynamická datová struktura s těmito dovolenými operacemi: CREATE(S) - vytvoří prázdný zásobník S, TOP(S) - vrátí prvek na vrchu zásobníku S, POP(S) - vyhodí prvek na vrchu zásobníku

Více

Základní datové struktury III: Stromy, haldy

Základní datové struktury III: Stromy, haldy Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

Algoritmy a datové struktury

Algoritmy a datové struktury Algoritmy a datové struktury Stromy 1 / 32 Obsah přednášky Pole a seznamy Stromy Procházení stromů Binární stromy Procházení BS Binární vyhledávací stromy 2 / 32 Pole Hledání v poli metodou půlení intervalu

Více

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti. Intervalové stromy Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme průběžně provádět tyto dvě operace: 1. Změna jednoho čísla v posloupnosti. 2. Zjištění součtu čísel

Více

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) Strom / tree uzel, vrchol / node, vertex hrana / edge vnitřní uzel

Více

OZD. Organizace a zpracování dat. učební text

OZD. Organizace a zpracování dat. učební text OZD Organizace a zpracování dat učební tet Datové typy Datové typy Dělení elementární strukturované = datové struktury základní (statické) základní struktury programovacího jazyka vyšší (dynamické) Datové

Více

Časová složitost algoritmů

Časová složitost algoritmů Časová složitost algoritmů Důležitou vlastností algoritmu je časová náročnost výpočtů provedené podle daného algoritmu Ta se nezískává měřením doby výpočtu pro různá data, ale analýzou algoritmu, jejímž

Více

Vysvětlete funkci a popište parametry jednotlivých komponent počítače a periferních zařízení.

Vysvětlete funkci a popište parametry jednotlivých komponent počítače a periferních zařízení. 1 Struktura osobního počítače Zakreslete základní schéma počítače podle Johna von Neumanna. Popište základní strukturu osobního počítače. Vysvětlete funkci a popište parametry jednotlivých komponent počítače

Více

5 Orientované grafy, Toky v sítích

5 Orientované grafy, Toky v sítích Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost

Více

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

Vyvažování a rotace v BVS, všude se předpokládá AVL strom Vyvažování a rotace v BVS, všude se předpokládá AVL strom 1. Jednoduchá levá rotace v uzlu u má operační složitost a) závislou na výšce levého podstromu uzlu u b) mezi O(1) a Θ(n) c) závislou na hloubce

Více

Praktická cvičení algoritmů

Praktická cvičení algoritmů UČEBNÍ TEXTY OSTRAVSKÉ UNIVERZITY Přírodovědecká fakulta Praktická cvičení algoritmů Hashim Habiballa Ostravská Univerzita 2006 Praktická cvičení algoritmů KIP/XPOP1 distanční studijní opora RNDr. PaedDr.

Více

Datové typy a struktury

Datové typy a struktury atové typy a struktury Jednoduché datové typy oolean = logická hodnota (true / false) K uložení stačí 1 bit často celé slovo (1 byte) haracter = znak Pro 8-bitový SII kód stačí 1 byte (256 možností) Pro

Více

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Dynamicky vázané metody. Pozdní vazba, virtuální metody Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:

Více

Problém, algoritmus, program. Vykonání programu

Problém, algoritmus, program. Vykonání programu Problém, algoritmus, program Problém - jsou otázky, které vyžadují nalezení řešení nebo rozhodnutí, např. jestli mají řešení - jedním ze způsobů řešení těchto otázek je použití algoritmu Algoritmus - je

Více

Konvexní obal a množina

Konvexní obal a množina Definice M Množina se nazývá konvení, jestliže úsečka spojující libovolné dva její bod je částí této množin, tj. ab, M, t 0, : ta+ ( tb ) M konvení množina a b a b nekonvení množina Definice Konvení obal

Více

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být

Více

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být

Více

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) Strom / tree uzel, vrchol / node, vertex hrana / edge vnitřní uzel

Více