Obsah:
Definícia - Čo znamená zložitosť času?
Časová zložitosť je pojem v počítačovej vede, ktorý sa zaoberá kvantifikáciou množstva času, ktorý skupina kódov alebo algoritmov potrebuje na spracovanie alebo spustenie v závislosti od množstva vstupov.
Inými slovami, časová zložitosť je v podstate efektívnosť alebo ako dlho trvá programová funkcia na spracovanie daného vstupu.
Techopedia vysvetľuje zložitosť času
Časová zložitosť je jednoducho mierou času, ktorý funkcia alebo výraz potrebuje na dokončenie svojej úlohy, ako aj názvom procesu na meranie tohto času. Môže sa použiť takmer na každý algoritmus alebo funkciu, ale je užitočnejší pre rekurzívne funkcie. Nemá zmysel merať časovú zložitosť aplikácií, ako je načítanie používateľského mena a hesla z databázy na porovnanie alebo jednoduché ukladanie údajov, či už je to 20 ms alebo 5 ms; to by bolo viac v línii prístupového času. Nemá to nič spoločné s starostlivosťou o čas jej realizácie, ale skôr s tým, že rozdiel je zanedbateľný. Ak však existuje rekurzívna funkcia, ktorá sa môže nazývať viackrát, určenie a pochopenie zdroja jej časovej zložitosti môže pomôcť skrátiť celkový čas spracovania napríklad z 600 ms na 100 ms.
Časová zložitosť je obvykle vyjadrená v „veľkej O notácii“, existujú však aj iné notácie. Toto je matematické znázornenie hornej hranice faktora mierky pre algoritmus a je napísané ako O (Nn), pričom „N“ je počet vstupov a „n“ je počet opakujúcich sa výrazov. Napríklad máme algoritmus:
numbers = {5, 6, 10, 11, 2}; foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2) {
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
V poli „čísla“ je päť vstupov a slučka „foreach“ sa opakuje dvakrát. Preto exponenciálny rast doby spracovania nastáva s rastúcim počtom vstupov a počtom slučiek.
