Алгоритам: Разлика помеѓу преработките

[непроверена преработка][проверена преработка]
Избришана содржина Додадена содржина
DSisyphBot (разговор | придонеси)
с Бот Менува: ml:അൽഗൊരിതം
с Бот: козметички промени
Ред 11:
Алгоритмите треба да бидат коректни, ефикасни и лесни за имплементација. Коректноста на алгоритмите треба да се докаже (со неможност да се најде валиден влезен податок за кој алгоритмот не работи правилно, со потврда дека спротивниот алгоритам дава грешни резултати, со [[математичка индукција]]). Важно е да се разбере дека изказот “решението е очигледно“ најчесто води во заблуда и креирање на грешни алгоритми. Не постои алгоритам за наоѓање на алгоритми. Сислувањето на алгоритам е обично многу потешко од пишување на [[програм]] (за познат алгоритам). Искусен дизајнер на алгоритми е всушност експерт за ефикасност на алгоритмите. Ефикасни се оние коректни алгоритми кои за дадени влезни податоци завршуваат побрзо од други коректни алгоритми кои работат со истите влезни податоци. При тоа треба се напомене дека наоѓањето на најефикасен алгоритам не е секогаш од пресудно значење. Имено статистички гледано само 20% од кодот на даден програм се извршува 80% од времето додека тој програм е стартуван. Од тука следи дека на вкупната ефикасност на програмот значително влиае само 20% од кодот, па доволно е само тој да се оптимизира. Иако брзината на извршување на некој алгоритам реално зависи од [[хардвер]]от над кој тој се извршува, па забрзување на алгоритмот може да се постигне со негово извршување на побрз хардвер, тоа може да биде лимитирано со технички ограничувања (не постоење на побрз хардвер). Од предходното следи, дека за да се подобрат перформансите на алгоритмот мора да се напише подобар алгоритам. За да се споредат алгоритмите потребно е да се користи модел на извршување кој не зависи од хардверот. Вообичаено се препоставува дека алгоритмите се извршуваат на хипотетички компјутер наречен “''Random Access Machine''“ или ''RAM''. При тоа се претпоставува дека:
* Секоја едноставна операција (+, *, -, =, if, call) се извршува во една временска единица.
* Јамките (циклусите), процедурите и функциите се извршуваат во онолку временски единии колку што содржат итерации.
* Постои неограничена [[меморија]].
Во овој модел времето потребно за извршување на алгоритмот за дадени влезни податоци е еднакво со бројот на извршување на едноставните операции при процесирањето на дадените влезни податоци.
 
{{Link FA|sr}}
 
[[Категорија:Математичка логика]]
[[Категорија:Информатика]]
[[Категорија:Компјутери]]
 
{{Link FA|sr}}
 
[[af:Algoritme]]