SlideShare a Scribd company logo
1 of 18
ПОИМ ЗА ВРЕМЕНСКА И
ПРОСТОРНА СЛОЖЕНОСТ НА
АЛГОРИТМИТЕ.
• Ќе тргнеме од фактот дека алгоритамот ја опишува постапката
за решавање на некој проблем во конечен број чекори
користејќи точно дефинирани дејства(операции). Тие дејства не
се единственото можно решение на проблемот, па од таа
причина постојат повеќе различни алгоритми кои решаваат ист
проблем.
• Како тогаш ќе знаеме кој алгоритам е „оној вистинскиот“?
• Како ќе знаеме кој алгоритам е подобар?
• За да одредиме кој алгоритам е подобар потребно е да се одреди мерка за
квалитет на алгоритамот, односно потребно е да се измерат ресурсите
кои се потребни за да се реши даден проблем. Мерките кои се користат
за оценување на квалитетот на една програма се: времето потребно за
да се изврши алгоритамот и просторот кој е потребен за
чување(меморирање) на влезните податоци, меѓурезултатите и
излезните податоци.
Просторна сложеност
• Според тоа, сложеноста на алгоритмите може да биде временска и просторна.
• Просторната сложеност се однесува на анализа на зафатеноста на
меморискиот простор при извршување на алгоритамот. Бидејќи денешните
компјутери имаат големи мемориски капацитети, вообичаено се пресметува
само временската сложеност.
Временска сложеност.
• Кај временската сложеност на алгоритамот потребно е да се најде
мерка која не зависи од брзината на компјутерот, туку од самиот
алгоритам.Токму заради тоа, временската сложеност не се
изразува со времето потребно за да се пресмета резултатот, туку со
бројот на елементарни операции кои алгоритамот мора да ги
пресмета за да се добие резултатот.
•  Самата анализа не се врзува за временска единица т.е. не се 
разгледува времетраењето на изведба на алгоритмот, туку бројот на 
извршување на операции во алгоритмот.
• Временската сложеност не зависи од компјутерот и неговата брзина 
на извршување на алгоритмот, затоа што не сакаме да ја тестираме 
брзината на компјутерот, туку квалитетот на самиот алгоритам.
ВРЕМЕ НА ИЗВРШУВАЊЕ НА АЛГОРИТАМОТ
•
Kога разгледуваме даден алгоритам во него можеме да 
наидеме на одредени ситуации кога имаме услови и 
разгранувања кои ја водат програмата во различни 
насоки на извршување, од кои едната насока може да 
биде со помала, а другата со поголема сложеност. Од 
овие причини сложеноста може да се разгледува на три 
начини:
• Најдобар случај – оној во кој алгоритамот најбрзо се извршува т.е. 
има најмал број чекори.
• Најлош случај - оној во кој алгоритамот се извршува во најголем 
број чекори, но сепак бројот на чекори е конечен.
• Просечен случај- оној во кој имаме можност за извршување во двете 
насоки а тие имаат просек на вкупниот број на извршувања.
Видови на анализа на алгоритмите:
 
•а priori 
• а posteriori.
A priori анализа
•Овој вид на анализа го проучува траењето на 
изведбата на некој алгоритам во најлош случај. Оваа 
анализа не зависи од компјутерот, програмскиот 
јазик, компајлерот и сл.
 if (a<5)
{
a=a+b;
}
else
{
a=a+b*c;
b+=a;
}
 во случај да не е исполнето a < 5 сложеноста е 3 (најлош случај)
for (i =0 ; i < n ; i++)
{
x+=1;
} сложеноста е n
5) for (i=0 ; i < n ; i++ )
{
for (j=0 ; j < n ; j++)
{
x=i+j;
}
} 
сложеноста е n2
A posteriori анализа
Оваа анализа, за разлика од A priori анализата, се спроведува на компјутер,
односно се мери времето на извршување на алгоритмот на даден компјутер.
Big O (Големо О) нотација
Големо O е нотација(ознака) за временска или просторна анализа на алгоритам
или програма. Најчесто служи за да можеме отприлика да пресметаме колку ќе
трае извршувањето на дадена програма и колку меморија ќе зафати.
• Објаснување преку примери: 
for (i = 0; i < n; i++);
овој циклус се извршува n пати, затоа запишуваме O(n).
for (i = 0; i < n; i++);
for (i = 0; i < m; i++);
првиот циклус се повторува n пати, а вториот m пати, затоа запишуваме O(n+m);
for (i=0;i<n;i++)
{
for(i=0; i<m;i++);
}
за циклус во циклус, ги множиме броевите на повторување на секој од циклусите, па запишуваме. O(n*m);
СПОРЕД ФУНКЦИЈАТА СО КОЈА СЕ ИЗРАЗУВА
СЛОЖЕНОСТА, ПОСТОЈАТ СЛЕДНИВЕ ВИДОВИ
СЛОЖЕНОСТ НА АЛГОРИТМИ:
• константна О(1)
тоа се оние алгоритми во кои се извршуваат само елементарни операции, како собирање,
одземање, множење, делење и сл. На пр. Пресметувањето на вредноста на функцијата
f(x)=2x+3, не зависи од х, бидејќи операциите множење и собирање имаат приближно
исто време на извршување.
• линеарна О(n)
ако алгоритамот содржи циклус со n повторувања
• квадратна О(n2
)
ако алгоритамот содржи два вгнездени циклуси со по n повторувања (циклус во циклус)
• степена О(nк
)
ако алгоритамот содржи к вгнездени циклуси со по n повторувања
• логаритамска О(log2n)
• линеарно логаритамска О(nlog2n)
• експоненцијална О(kn
)
• факториелна О(n!)
ЗАКЛУЧОК:
• Секогаш треба да размислуваме во насока на 
подобрување на алгоритамот. Почнуваме од 
најпрегледниот и наједноставниот алгоритам, кој 
потоа го подобруваме во неколку чекори.

More Related Content

Viewers also liked (8)

Веб прелистувачи и веб пребарувачи
Веб прелистувачи и веб пребарувачиВеб прелистувачи и веб пребарувачи
Веб прелистувачи и веб пребарувачи
 
Virusi vi 9
Virusi vi 9Virusi vi 9
Virusi vi 9
 
компјутерски вируси
компјутерски вирусикомпјутерски вируси
компјутерски вируси
 
Rabota so kompjuter_III odd
Rabota so kompjuter_III oddRabota so kompjuter_III odd
Rabota so kompjuter_III odd
 
Rабота со стилови
Rабота со стиловиRабота со стилови
Rабота со стилови
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Поим за временска и просторна сложеност на алгоритмите