Funkce, intuitivní chápání složitosti

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Standardní knihovní funkce pro práci s textovými řetězci
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Programování v C jazyku - SEMINÁŘ
Programovací jazyk C++
Metody (funkce, procedury)
ALGO – Algoritmizace 1. cvičení
Algoritmizace a programování Podprogramy v Delphi - 10
Alg51 Rozklad problému na podproblémy Postupný návrh programu rozkladem problému na podproblémy –zadaný problém rozložíme na podproblémy –pro řešení podproblémů.
Programování v C++ Cvičení.
Principy překladačů Běhová podpora Jakub Yaghob. Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora.
Algoritmy I Cvičení č. 3.
Algoritmizace a programování
ALGORITMIZACE ÚVODNÍ PŘEDNÁŠKA 2 SLOVO ALGORITMUS VZNIKLO ZE JMÉNA ARABSKÉHO MATEMATIKA AL-KHWARIZMIHO, KTERÝ V DEVÁTÉM STOLETÍ SEPSAL ROZSÁHLOU KOLEKCI.
Struktury, qsort, mergesort BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií.
Algoritmizace a programování
Procedury a funkce Základní charakteristika a použití v programu.
Algoritmizace.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Informatika I 2. přednáška
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
C – strukturované příkazy
ALGO – Algoritmizace 2. cvičení
Časová složitost algoritmů, řazení a vyhledávání
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Počítače a programování 1
Cvičení.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
5. Procedury a funkce Procedura je samostatně odladěný algoritmus, v programu může být volána vícekrát. Dvojí terminologie - rozlišujeme procedury a funkce.
Příklady v jazyku C – část 3
JavaScript Funkce.
Napište program v C pro výpočet plochy obdélníka se stranami A=3 a B=2. Výsledek vytiskněte s patřičným komentářem na obrazovku formátovým příkazem printf.
OSNOVA: a)Funkce – úvod b) Hlavičky funkcí c) Rekurze funkcí d)Knihovny funkcí e)Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
Realloc a qsort examples BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Rozklad problému na podproblémy, rekurze
Ukazatele BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
polynom proměnné x f = anxn + an-1xn-1 + ……. + a0
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část I.
C – procedury Mgr. Lenka Švancarová.
C – if Mgr. Lenka Švancarová. if vývojový diagram Podmínka Příkaz(y) Podmínka Příkaz(y) Úplné větveníNeúplné větvení ++--
C – cyklus do-while Mgr. Lenka Švancarová.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Podprogramy (subroutines) Pojmenované kousky programu, které –tvoří logicky ucelené části –se v programu opakují Jsou zapsány na jednom místě a v případě.
Vstup, výstup BI-PA1 Programování a algoritmizace 1, ZS
Funkce Přednáška č. 5. Funkce (functions)  posloupnost příkazů uvedená hlavičkou  využití – opakovaně volaná sekvence – strukturování programu – ošetření.
Řízení běhu programu, řídící struktury A0B36PRI - PROGRAMOVÁNÍ
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Řídící struktury, if, while, switch BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií.
Počítače a programování 2
Inf Cykly ve vývojových diagramech
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
C# konzole – Podíl dvou čísel, podmínka IF
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Vytváření dokumentace algoritmů
Programování v jazyce C++
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Databázové systémy a SQL
Oblast platnosti identifikátoru (1)
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Typ pole (1) Proměnná typu pole představuje kolekci proměnných stejného datového typu, které mohou být označovány společným jménem (identifikátorem) Pole.
Podprogramy.
Opakování ze 3. cvičení deklarace proměnných výpis na monitor (výstup)
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

Funkce, intuitivní chápání složitosti PA1 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Funkce, intuitivní chápání složitosti BI-PA1 Programování a algoritmizace 1, ZS 2012-2013 Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké učení technické Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Funkce definice funkce parametry funkce deklarace funkce variace na téma největší společný dělitel procedury výstupní parametry přidělování paměti Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

čtení přirozeného čísla PA1 Funkce – faktoriál /* prog5-1a.c */ /* vypocet faktorialu */ #include <stdio.h> #include <stdlib.h> int main(void) { int n; int i = 1, f = 1; printf("zadejte prirozene cislo: "); scanf("%d", &n); if (n<1) { printf("%d neni prirozene cislo\n", n); return 0; } while (i<n) { i = i+1; f = f*i; printf("%d! = %d\n", n, f); čtení přirozeného čísla výpočet faktoriálu Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Faktoriál pomocí funkcí PA1 Faktoriál pomocí funkcí Funkce pro čtení přirozeného čísla int ctiPrirozene(void) { int n; printf("zadejte prirozene cislo: "); scanf("%d", &n); if (n<1) { printf("%d neni prirozene cislo\n", n); exit(0); } return n; } Hlavička funkce int ctiPrirozene(void) vyjadřuje, že funkce nemá parametry a že výsledkem volání funkce je hodnota typu int předepisuje návrat z funkce, výsledkem volání je hodnota n Příklad volání funkce: int n = ctiPrirozene(); Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Faktoriál pomocí funkcí PA1 Faktoriál pomocí funkcí Funkce pro výpočet faktoriálu int faktorial(int n) { int i = 1, f = 1; while (i<n) { i = i+1; f = f*i; } return f; Hlavička funkce vyjadřuje, že funkce má jeden parametr typu int a že výsledkem je hodnota typu int Příklad volání funkce int f = faktorial(4); // vysledek se ulozi do f Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Faktoriál pomocí funkcí PA1 Faktoriál pomocí funkcí /* prog5-1b.c */ /* vypocet faktorialu */ #include <stdio.h> #include <stdlib.h> int ctiPrirozene(void) { int n; printf("zadejte prirozene cislo: "); scanf("%d", &n); if (n<1) { printf("%d neni prirozene cislo\n", n); exit(0); } return n; Proměnnou n ve funkci main lze vynechat: int main(void) { printf("%d! = %d\n", n, faktorial(n)); ... definice funkce Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

PA1 Definice funkce Funkce je podprogram (zápis dílčího algoritmu), který vrací hodnotu (výsledek) Definici funkce tvoří hlavička funkce tělo funkce Hlavička funkce v jazyku C má tvar typ jméno( specifikace parametrů ) typ je typ výsledku funkce jméno je identifikátor funke specifikací parametrů se deklarují parametry funkce, každá deklarace má tvar typ_parametru jméno_parametru a oddělují se čárkou nemá-li funkce parametry, specifikace parametrů je void Tělo funkce je složený příkaz nebo blok, který se provede při volání funkce Tělo funkce musí dynamicky končit příkazem return x; kde x je výraz, jehož hodnota je výsledkem volání funkce Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

PA1 Parametry funkce Parametry funkce jsou lokální proměnné funkce, kterým se při volání funkce přiřadí hodnoty skutečných parametrů. Jestliže parametr funkce je typu T, pak přípustným skutečným parametrem je výraz, jehož hodnotu lze přiřadit proměnné typu T - tedy stejná podmínka, jako u přiřazení. /* prog5-1c.c */ #include <stdio.h> #include <stdlib.h> int max(int x, int y) { if (x>y) return x; return y; } int main(void) { int a = 10, b = 20; printf("%d\n", max(a, b)); printf("%d\n", max(32.4, b)); return 0; Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

PA1 Parametry funkce Parametry funkce předávají vstupní data algoritmu, který funkce realizuje Častá chyba začátečníka: funkce, která čte hodnoty parametrů pomocí operace vstupu dat int max(int x, int y) { scanf("%d%d", &x, &y); // nesmyslný příkaz if ( x > y ) return x; else return y; } Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

PA1 Deklarace funkce Deklarace funkce je tvořena hlavičkou funkce a je zakončena středníkem Deklarací je funkce zavedena a může být použita /* prog5-1d.c */ ... int max(int x, int y); int main(void) { int a = 10, b = 20; printf("%d\n", max(a, b)); printf("%d\n", max(32.4, b)); return 0; } int max(int x, int y) { if (x>y) return x; else return y; } Definice funkce může být v jiném souboru (uvidíme později) deklarace funkce definice funkce Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

PA1 Volání funkce Funkci f můžeme vyvolat z funkce g, jestliže ve funkci g je známa hlavička funkce f Hlavička funkce se zadá buď deklarací nebo definicí funkce. Zopakujme, že hlavičkou funkce je dáno jméno (identifikátor) funkce, počet a typy parametrů a typ výsledku funkce Funkci f, která má n parametrů a vrací výsledek typu T, můžeme vyvolat zápisem funkce, což je výraz ve tvaru f(p1, p2, ... , pn) kde p1, p2, ... , pn jsou výrazy udávající skutečné parametry Hodnoty skutečných parametrů se přiřadí parametrům funkce podle pravidel pro přiřazení a pak se provede tělo funkce. Hodnotou zápisu funkce je výsledek funkce (zadaný v příkazu return). Zápis funkce obvykle používáme jako výraz, tzn. v kontextu, ve kterém je uvedeno, co s výsledkem funkce udělat (např. přiřadit nějaké proměnné). Ze zápisu funkce uděláme příkaz, zakončíme-li ho středníkem (výsledek funkce se pak nepoužije – zapomene se) Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Další příklad funkce Funkce pro zjištění, zda daný rok je přestupný PA1 Další příklad funkce Funkce pro zjištění, zda daný rok je přestupný /* prog5-1e.c */ #include <stdio.h> #include <stdlib.h> int jePrestupny(int rok) { if (rok%4==0 && (rok%100!=0 || rok%400==0)) return 1; else return 0; } int main(void) { int rok; printf("zadejte rok: "); scanf("%d", &rok); printf("rok %d ", rok); if (jePrestupny(rok)) printf("je prestupny\n"); else printf("neni prestupny\n"); return 0; Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

PA1 Funkce pro výpočet NSD Jednoduchý algoritmus výpočtu nsd jsme již uvedli Efektivnější algoritmus lze sestavit na základě těchto vztahů: je-li x = y, pak nsd( x, y ) = x je-li x > y, pak nsd( x ,y ) = nsd( x-y, y ) je-li x < y, pak nsd( x, y) = nsd( x, y-x ) Řešení 2: int nsd(int x, int y) { while (x!=y) if (x>y) x = x-y; else y = y-x; return x; } Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

PA1 Funkce pro výpočet NSD Do těla cyklu vnoříme místo podmíněného příkazu pro jediné zmenšení hodnoty x nebo y dva cykly pro opakované zmenšení hodnot x a y Řešení 3: int nsd(int x, int y) { while (x!=y) { while (x>y) x = x-y; while (y>x) y = y-x; } return x; Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Euklidův algoritmus pro výpočet NSD PA1 Euklidův algoritmus pro výpočet NSD Vnitřní cykly řešení 3 počítají nenulový zbytek po dělení většího čísla menším Pro výpočet zbytku po dělení slouží operátor % Euklidův algoritmus lze slovně formulovat takto: určíme zbytek po dělení daných čísel, zbytkem dělíme dělitele a určíme nový zbytek, až dosáhneme nulového zbytku; poslední nenulový zbytek je nsd Řešení 4: int nsd(int x, int y) { int zbytek = x%y; while (zbytek!=0) { x = y; y = zbytek; zbytek = x%y; } return y; Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

PA1 Procedury Procedura je podprogram (zápis dílčího algoritmu), který nevrací žádnou hodnotu V jazyku C se procedury definují jako funkce, jejichž typ výsledku je void Proceduru je možno dynamicky ukončit kdekoliv příkazem return; Příkaz return není nutný, procedura končí po provedení posledního příkazu Příklad procedury: výpis většího ze dvou celých čísel void vypisMax(int x, int y) { if (x>y) printf("%d", x); else printf("%d", y); } Dále se budeme držet terminologie jazyka C: řekneme-li funkce, myslíme tím: jak funkci, která vrací hodnotu, tak proceduru, která hodnotu nevrací (typ výsledku je void). Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Vstupní a výstupní parametry Parametrem funkce je obvykle hodnota, která slouží jako vstup dílčímu algoritmu, který je funkcí realizován. Tyto parametry nazýváme vstupními parametry Všechny předchozí funkce měly vstupní parametry Většina programovacích jazyků umožňuje, aby funkce (procedura) měla též výstupní parametr Výstupní parametr umožňuje, aby funkce (procedura) přiřadila hodnotu do proměnné, která je dána skutečným parametrem. Příklad (v pseudojazyku): procedura, která ze dvou vstupních parametrů x a y (celá čísla) uloží menší číslo do proměnné dané výstupním parametrem mensi a vetší číslo do proměnné dané výstupním parametrem vetsi proc minMax(in int x, in int y, out int mensi, out int vetsi) { if (x<y) { mensi = x; vetsi = y; } else { mensi = y; vetsi = x; } } Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Výstupní parametry Typ T* se nazývá typem ukazatel na T Výstupní parametry se v jazyku C realizují tak, že funkci (proceduře) se předá adresa proměnné, kterou má funkce (procedura) změnit Operátor, který dodá adresu proměnné, už známe. Je to &, který používáme ve volání funkce scanf Proměnná (parametr) p, jejíž hodnotou může být adresa proměnné typu T, se deklaruje zápisem T *p Typ T* se nazývá typem ukazatel na T Příklad: deklarace procedury, která ze dvou vstupních parametrů x a y (celá čísla) uloží vetší číslo do proměnné dané výstupním parametrem vetsi a menší číslo do proměnné dané výstupním parametrem mensi void minMax(int x, int y, int *mensi, int *vetsi); Jak tuto proceduru vyvolat: int a, b, min, max; ... maxMin(a, b, &min, &max); Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

PA1 Výstupní parametry Pro přístup k proměnné, jejíž adresa je v proměnné (parametru) typu ukazatel, slouží unární operátor * (dereference) Příklad (prog5-2a.c): void minMax(int x, int y, int *mensi, int *vetsi) { if (x<y) { *mensi = x; *vetsi = y; } else { *mensi = y; *vetsi = x; } } int main(void) { int a, b, max, min; printf("zadejte dve cela cisla: "); scanf("%d%d", &a, &b); minMax(a, b, &min, &max); printf("min = %d, max = %d\n", min, max); ... vetsi max *vetsi Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Parametry typu ukazatel Skutečným parametrem pro parametr typu T* musí být adresa proměnné typu T. Je-li proměnná jiného typu, překladač vypíše varovné hlášení (warning), program se přeloží ale nebude správně fungovat Příklad (prog5-2b.c): void minMax(int x, int y, int *mensi, int *vetsi) { if (x<y) { *mensi = x; *vetsi = y; } else { *mensi = y; *vetsi = x; } } int main(void) { float a, b, max, min; printf("zadejte dve cisla: "); scanf("%f%f", &a, &b); minMax(a, b, &min, &max); printf("min = %f, max = %f\n", min, max); ... typ int* typ float* Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Přidělování paměti proměnným Přidělením paměti proměnné rozumíme určení adresy umístění proměnné v paměti počítače Poznali jsme dva druhy proměnných: globální proměnné (deklarované mimo funkci) lokální proměnné funkcí (deklarované v bloku funkce a parametry funkce) Globálním proměnným se přidělí paměť při spuštění programu (statické přidělení paměti) a zůstane jim přidělena až do ukončení běhu programu Lokálním proměnným a parametrům funkce se paměť přidělí při volání funkce (dynamické přidělení paměti) a zůstane jim přidělena jen do návratu z funkce (po návratu se přidělené adresy uvolní pro další použití) Úseky paměti přidělované lokálním proměnným a parametrům tvoří tzv. zásobník ( stack ): úseky se přidávají a odebírají, přičemž se vždy odebere naposledy přidaný úsek ( strategie LIFO ) zásobník Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Přidělování paměti proměnným int g; void f(void) { int b; // 2 h(4); // 4 ... } int h(int x) { ... // 3 int main(void) { int a; // 1 f(); // 5 ... x b b b zásobník a a a a a staticky přidělená paměť g g g g g 1 2 3 4 5 Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

raději pouze: pro každé přirozené PA1 Problém: prvočísla Zjistěte počet prvočísel menších než zadané číslo n a určete čas, který na to budete potřebovat prvočíslo: přirozené číslo větší než 1, které je beze zbytku dělitelné pouze jedničkou a samo sebou. přirozené číslo: kladné celé číslo větší než 0 Algoritmus: Pro každé číslo menší než n rozhodněte, zda jde o prvočíslo či ne Nasčítejte prvočísla podproblémy : zjištění zda dané číslo je prvočíslo měření času raději pouze: pro každé přirozené funkce Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

PA1 Příklad: prvočísla I Dle definice: Přirozené číslo n je prvočíslo, právě tehdy když jej beze zbytku dělí pouze číslo n a číslo 1 int isPrvocislo1(long long n) { long long i; if (n < 2) { return 0; } int pocetDelitelu = 0; for (i = 1; i <= n; i++) { if (n % i == 0) { pocetDelitelu++; } } if (pocetDelitelu == 2) { return 1; } else { return 0; } jak dlouho poběží tato metoda pro číslo 100 000 000 000 003? a jak dlouho pro 100 000 000 000 000? Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

PA1 Příklad: prvočísla II Vylepšení 1. - najdeme-li prvního dělitele jiného než čísla 1 a n, již to není prvočíslo int isPrvocislo2(long long n) { long long i; if (n < 2) { return 0; } for (i = 2; i < n; i++) { if (n % i == 0) { return 0; } } return 1; jak dlouho poběží tato metoda pro číslo 100 000 000 000 003? a jak dlouho pro 100 000 000 000 000? Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Příklad: prvočísla III PA1 Příklad: prvočísla III Vylepšení 2. Číslo složené lze napsat jako součin dělitelů, např. 35=7*5; jedno je „menší“ a druhé „větší“ int isPrvocislo3(long long n) { long long i; if (n < 2) { return 0; } for (i = 2; i <= n / 2; i++) { if (n % i == 0) { return 0; } } return 1; jak dlouho poběží tato metoda pro číslo 100 000 000 000 003? a jak dlouho pro 100 000 000 000 000? Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

sqrt(n) se vyhodnocuje před každým průchodem cyklem  PA1 Příklad: prvočísla IV Vylepšení 2. Číslo složené lze napsat jako součin dělitelů, např. 35=7*5; jedno je „menší“ a druhé „větší“, pokud nejsou stejné jako 49 = 7*7 int isPrvocislo(long long n) { long long i; if (n < 2) { return 0; } for (i = 2; i <= sqrt(n); i++) { if (n % i == 0) { return 0; } } return 1; sqrt(n) se vyhodnocuje před každým průchodem cyklem  jak dlouho poběží tato metoda pro číslo 100 000 000 000 003? a jak dlouho pro 100 000 000 000 000? Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Příklad: prvočísla V  int isPrvocislo(long n) { long i; PA1 Příklad: prvočísla V int isPrvocislo(long n) { long i; int max = (int)sqrt(n); if (n < 2) { return 0; } for (i = 2; i <= max; i++) { if (n % i == 0) { return 0; } } return 1;  jak dlouho poběží tato metoda pro číslo 100 000 000 000 003? a jak dlouho pro 100 000 000 000 000? Ing. Miroslav Balík, Ph.D. - BI-PA1- 05

Příklad: prvočísla V - složitost PA1 Příklad: prvočísla V - složitost Složitost algoritmu určuje jeho časovou a prostorovou náročnost Určete složitost algoritmů (na základě odhadu času) pro všechny typy metod na zjištění, zda dané číslo je prvočíslo t/m n Ing. Miroslav Balík, Ph.D. - BI-PA1- 05