2. • Ќе тргнеме од фактот дека алгоритамот ја опишува постапката
за решавање на некој проблем во конечен број чекори
користејќи точно дефинирани дејства(операции). Тие дејства не
се единственото можно решение на проблемот, па од таа
причина постојат повеќе различни алгоритми кои решаваат ист
проблем.
3. • Како тогаш ќе знаеме кој алгоритам е „оној вистинскиот“?
• Како ќе знаеме кој алгоритам е подобар?
• За да одредиме кој алгоритам е подобар потребно е да се одреди мерка за
квалитет на алгоритамот, односно потребно е да се измерат ресурсите
кои се потребни за да се реши даден проблем. Мерките кои се користат
за оценување на квалитетот на една програма се: времето потребно за
да се изврши алгоритамот и просторот кој е потребен за
чување(меморирање) на влезните податоци, меѓурезултатите и
излезните податоци.
4. Просторна сложеност
• Според тоа, сложеноста на алгоритмите може да биде временска и просторна.
• Просторната сложеност се однесува на анализа на зафатеноста на
меморискиот простор при извршување на алгоритамот. Бидејќи денешните
компјутери имаат големи мемориски капацитети, вообичаено се пресметува
само временската сложеност.
5. Временска сложеност.
• Кај временската сложеност на алгоритамот потребно е да се најде
мерка која не зависи од брзината на компјутерот, туку од самиот
алгоритам.Токму заради тоа, временската сложеност не се
изразува со времето потребно за да се пресмета резултатот, туку со
бројот на елементарни операции кои алгоритамот мора да ги
пресмета за да се добие резултатот.
7. ВРЕМЕ НА ИЗВРШУВАЊЕ НА АЛГОРИТАМОТ
•
Kога разгледуваме даден алгоритам во него можеме да
наидеме на одредени ситуации кога имаме услови и
разгранувања кои ја водат програмата во различни
насоки на извршување, од кои едната насока може да
биде со помала, а другата со поголема сложеност. Од
овие причини сложеноста може да се разгледува на три
начини:
13. A posteriori анализа
Оваа анализа, за разлика од A priori анализата, се спроведува на компјутер,
односно се мери времето на извршување на алгоритмот на даден компјутер.
Big O (Големо О) нотација
Големо O е нотација(ознака) за временска или просторна анализа на алгоритам
или програма. Најчесто служи за да можеме отприлика да пресметаме колку ќе
трае извршувањето на дадена програма и колку меморија ќе зафати.
15. СПОРЕД ФУНКЦИЈАТА СО КОЈА СЕ ИЗРАЗУВА
СЛОЖЕНОСТА, ПОСТОЈАТ СЛЕДНИВЕ ВИДОВИ
СЛОЖЕНОСТ НА АЛГОРИТМИ:
• константна О(1)
тоа се оние алгоритми во кои се извршуваат само елементарни операции, како собирање,
одземање, множење, делење и сл. На пр. Пресметувањето на вредноста на функцијата
f(x)=2x+3, не зависи од х, бидејќи операциите множење и собирање имаат приближно
исто време на извршување.
• линеарна О(n)
ако алгоритамот содржи циклус со n повторувања
• квадратна О(n2
)
ако алгоритамот содржи два вгнездени циклуси со по n повторувања (циклус во циклус)
16. • степена О(nк
)
ако алгоритамот содржи к вгнездени циклуси со по n повторувања
• логаритамска О(log2n)
• линеарно логаритамска О(nlog2n)
• експоненцијална О(kn
)
• факториелна О(n!)