Zlozitost.. Na co si dat pozor – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Zlozitost.. Na co si dat pozor – C / C++ – Fórum – Programujte.comZlozitost.. Na co si dat pozor – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
nord0
Newbie
14. 4. 2016   #1
-
0
-

Zdravim. Prosim vas vysvetlite mi niekto slozitost jednotlivych funkci.. ? na co si davat pozor, aby bola zozitost co najnizsia. Ako na nu ? co robit a co nerobit ? Dakujem za pomoc

Nahlásit jako SPAM
IP: 213.181.141.–
Reklama
Reklama
Kartik
~ Anonymní uživatel
35 příspěvků
14. 4. 2016   #2
-
0
-

Vybral sis C/C++ což už samo je složitej jazyk. Začneš tak, že si seženeš nějakou knížku, případně na netu najdeš nějakej seriál (třeba tady na webu), kde se prokoušeš od základů po to komplikovaný..., ale komplikovanosti se nikdy nevyhneš, ono tedy bude záležet co chceš vytvořit, ale těžko uděláš jednoduše složité věci.

Nahlásit jako SPAM
IP: 90.182.189.–
ondrej39+1
Věrný člen
14. 4. 2016   #3
-
0
-

#1 nord
I pokud myslíš časovou/paměťovou složitost, tvůj dotaz je tak šíleně obecný, že ho prostě není možné zodpovědět. Zkonkretizuj příklady.

Nahlásit jako SPAM
IP: 79.141.243.–
Inject all the dependencies!
nord0
Newbie
14. 4. 2016   #4
-
0
-

Ospravedlnujem sa, to bude koli nevedomosti.. ano myslim casovu/pamatovu zlozitost
napr teraz prehladavam zoznamy..
LinkedList a ArrayList. ak chcem co najnizsiu zlozitost tak lajcky povedane.. mal by som sa vyhybat nejakemu vnaraniu cyklov pokial to nie je naozaj nutne? ma na to vplyv aj pocet parametrov danej funkcie ?

Nahlásit jako SPAM
IP: 213.181.141.–
ondrej39+1
Věrný člen
14. 4. 2016   #5
-
0
-

#4 nord
Pro algoritmy, datové struktury a složitosti bývá na vysokých školách předmět minimálně jeden celý semestr, a ani tam se nepokryje všechno, protože je to prostě téma tak rozsáhlé.

Navíc se každý problém řeší jinak, takže jakmile narazíš ty na svůj vlastní problém, s největší pravděpodobností na něho nebude jednoznačná kuchařka, jak nejvhodnější řešení uvařit.

Můžeš začít tímto jednoduchým úvodem z ČVUT: první část, druhá část, třetí část, naučit se, co to ta Big-O notace skutečně je, co znamená.

Co se hodně často ovšem stává je, že máš buď jedno nebo druhé, tj. optimální časovou nebo paměťovou složitost, ale zpravidla ne obojí zároveň (tento problém vzniká kvůli nutnosti uchovávat extra navíc k nejnutnějším datům, vedoucí k redundanci, nabývání paměťové složitosti, pro usnadnění například vyhledávání nad danou datovou kolekcí).

Složitost je velmi teoretický pojem a s jako takovým je třeba s ní zacházet a aplikovat ji na možné postupy. Například pokud programuji v C++ a vím, že budu mít kolekci dat, které je možné jednoznačně identifikovat a nebudou se opakovat, data budou unikátní, pak je asi lepší použít std::set než std::vector. A abys toto v daném jazyce věděl, je třeba samozřejmě znát daný jazyk, jeho komponenty a pak, jsme zas u toho, rozumět složitostem daných komponent.

Co se navyšování složitosti týče, tak ano, iterace přes kolekce bývají největším bottleneckem. Ty lze občas zmírnit vhodnější datovou strukturou, například namísto použití lineárního seznamu použiješ nějaký BST, výjimečně je možné je vhodnou konstrukcí zcela eliminovat.

Každopádně v praxi se běžně nějaký foreach vůbec neřeší. Prostě se naprogramuje řešení, aby program fungoval, a teprve poté, když chceš, aby ti proces trval namísto 500 ms jenom 150 ms, se zjišťuje, kde by se proces dal zrychlit.

Nahlásit jako SPAM
IP: 79.141.243.–
Inject all the dependencies!
nord0
Newbie
14. 4. 2016   #6
-
0
-

#5 ondrej39
parada dakujem za vystvetlenie :) pozriem si to teda riadne a dufam ze postupne sa do toho dostanem

Nahlásit jako SPAM
IP: 213.181.141.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 58 hostů

Podobná vlákna

!!POZOR!! — založil mallox

Konzultanti pozor!!! — založil PB_BHR

Pozor ostre hrany!!! — založil olgo

Casova zlozitost — založil vird

Pamatova zlozitost — založil Bius

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý