Diskusia: Časová složitost algoritmů
Člen
Zobrazené 7 správy z 7.
Na prispôsobenie obsahu a reklamy, poskytovanie funkcií sociálnych médií a analýzu našej návštevnosti používame súbory cookie. Informácie o tom, ako náš web používaš, zdieľame s našimi partnermi pre sociálne médiá, inzerciu a analýzy. Partneri môžu tieto údaje kombinovať s ďalšími informáciami, ktoré si im poskytol alebo ktoré získali v dôsledku toho, že používaš ich služby.
Používame nevyhnutné cookies na fungovanie webu a s tvojím súhlasom aj analytické a marketingové cookies.
Zaisťujú základné funkcie, bezpečnosť a služby, ktoré si si vyžiadal. Nedajú sa vypnúť.
| Služba | Poskytovateľ | Účel | Cookies a úložisko | Doba uloženia |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Prevádzka webu, relácia, prihlásenie a uloženie nastavenia cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relácia až 1 rok |
| Google Tag Manager | Správa značiek a načítanie meracích nástrojov webu. | Žiadne | Neukladá sa | |
| Google Fonts | Načítanie typografie webu. | Úložisko riadené poskytovateľom | Podľa podmienok poskytovateľa | |
| Google Hosted Libraries | Načítanie potrebných knižníc a štýlov webu. | Úložisko riadené poskytovateľom | Podľa podmienok poskytovateľa | |
| Google reCAPTCHA | Ochrana formulárov a webu pred zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relácia až 180 dní | |
| YouTube | Prehrávanie vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relácia až trvalé úložisko | |
| Vimeo | Vimeo | Prehrávanie vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relácia až 2 roky |
| Facebook Login | Meta | Prihlásenie pomocou účtu tretej strany. | Úložisko riadené poskytovateľom | Relácia až 1 rok |
| GoPay | GoPay | Spracovanie používateľom vyžiadanej platby. | Úložisko riadené poskytovateľom | Podľa podmienok poskytovateľa |
Pomáhajú nám porozumieť používaniu webu a zlepšovať ho.
| Služba | Poskytovateľ | Účel | Cookies a úložisko | Doba uloženia |
|---|---|---|---|---|
| Google Analytics 4 | Meranie návštevnosti a používania webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Meranie návštevnosti a používania webu. | _clck, _clsk, _cltk | Relácia až 1 rok |
Slúžia na meranie kampaní, personalizáciu reklamy a marketingovú komunikáciu.
| Služba | Poskytovateľ | Účel | Cookies a úložisko | Doba uloženia |
|---|---|---|---|---|
| Google Ads | Meranie kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relácia až 90 dní | |
| Meta Pixel | Meta | Meranie kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Meranie kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relácia až trvalé úložisko |
| LinkedIn Insight | Meranie kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relácia až 1 rok | |
| Ecomail | Ecomail.cz | Meranie kampaní, reklama a remarketing. | ecmid, Úložisko riadené poskytovateľom | Podľa podmienok poskytovateľa |
| Atribúcia kampaní ITnetwork | ITnetwork | Priradenie návštevy a objednávky ku kampani. | campaign_clid[*], user_session_context | Až 1 rok |
nevím proč, ale nešlo mi přiložit pseudokod, takže to celé hodím do code
Selection-Sort(A[0:n - 1])
1 for j <- 0 to n - 2
2 do iMin <- j
3 for i <- j + 1 to n - 1
4 do if A[i ] < A[iMin] then iMin <- i
5 t <- A[j ]; A[j ] <- A[iMin]; A[iMin] <- t
následně si rozepíšu jednotlivé operace a vypočítám viz. obrázek
nevím jestli to dělá správně, popřípadě bych prosil o vysvětlení
Ještě ten obrázek
Ona je to docela věda, ale většinou dostaneš pár cyklů, co něco dělají s nějakou kolekcí.Stačí se podívat kolikrát ty cykly jedou v nejhorším případě. V tomto případě máš cyklus co projede n prvků a v něm další cyklus co projede n prvků. Dohromady tedy n2. Něco jsem o tom tady na devbooku napsal, četl jsi to?
U třídícího algoritmu tě zajímá počet porovnání prvků a počet prohození prvků.
n-1 + n-2 + n-3 + ... + 1 = n*(n-1)/2 = (n*n - n)/2 krát
n-1 krát
Takže celkový počet operací je (n2 - n)/2 + n - 1
Po úpravě n2 / 2 + n / 2 - 1
Asymptotická složitost O(n2 / 2 + n / 2 - 1) = O(n2)
Pokud potřebuješ spočítat ještě amortizovanou složitost, pak si pro pole o velikosti n vezmi všechny permutace a pro jednotlivé případy spočítej počet porovnání a z nich aritmetický průměr. V tomhle případě je ale jasné, že to bude opět O( n2 )
Dneska jsem se teda díval na ostatní algority(Insert, Bubble, Merge, Heap, Qiuck - sort) a jestli jsem to správně pochopil, tak selection, bubble a insert se odůvodní/vypočítá tímto způsobem
U třídícího algoritmu tě zajímá počet porovnání prvků a počet prohození prvků.
- porovnávání děláš na řádce 4 a ta se provede kolikrát pro pole A o velikosti n
n-1 + n-2 + n-3 + ... + 1 = n*(n-1)/2 = (n*n - n)/2 krát
- prohazování děláš na řádce 5 a ta se provede kolikrát pro pole A o velikosti n
n-1 krát
Takže celkový počet operací je (n2 - n)/2 + n - 1
Po úpravě n2 / 2 + n / 2 - 1
Asymptotická složitost O(n2 / 2 + n / 2 - 1) = O(n2)
Pokud potřebuješ spočítat ještě amortizovanou složitost, pak si pro pole o velikosti n vezmi všechny permutace a pro jednotlivé případy spočítej počet porovnání a z nich aritmetický průměr. V tomhle případě je ale jasné, že to bude opět O( n2 )
ostatní jsou "vysvětlené ve skriptech"
Zobrazené 7 správy z 7.
