Loading...

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

avatar Петя Гроздарска 3 минути 325
Колко са важни алгоритмите за един програмист?

Може ли един програмист да е наистина добър в работата си, ако не познава алгоритмите? Според нас, алгоритмичното мислене и познаването на алгоритмите като стъпки за решаване на проблем, са основополагащи за развитието на всеки отличен софтуерен инженер. 

Дефиниция на алгоритъм

Първата стъпка към разбирането на алгоритмите и защо са толкова важни е да определим какво значи „алгоритъм“. Според популярната книга „Въведение в алгоритмите“ („Introduction to Algorithms“ by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein), „алгоритъмът e всяка добре определена изчислителна процедура, която взема една или няколко стойности като входни данни и извежда друга стойност като изход.“ С други думи, алгоритмите са като карти или пък рецепти за извършването на едно добре определено задание. В този ред на мисли, някакъв блок код, който изчислява последователността от числата на Фибоначи е изпълнение на определен алгоритъм. Дори и проста функция за събиране на две числа може да се счете за алгоритъм, дори и много прост такъв.

Защо са важни алгоритмите?

Алгоритмите трябва да се изучават, първо защото не зависят от определена технология. За да разбираш алгоритмите, не ти трябва да знаеш Java или C++, или каквато нова технология излезе утре. Изисква се да имаш разбиране към концепцията на стъпките, които трябва да се следват, за да се реши определен проблем (с определени програмни езици с близки характеристики).

Алгоритмите са важни за областта на компютърните науки, защото позволяват да се правят анализи на различни начини на изчисление и да се достигне най-добрия начин за решение на даден проблем. И под „най-добрия начин“ имаме предвид този, който с най-малък ресурс може най-бързо да стигне до решението.

Algorithms

Най-важните алгоритми, които трябва да знае един програмист

Тук може доста да се поспори, а и трудно да се определи кои точно 5 или 10 алгоритъма да сложим в нашата класация. Ето все пак на кои се спряхме:

  1. Map-Reduce – прост и нагледен начин за използването на няколко компютъра да решат един проблем. Допълнителна информация и начини на използване можете да откриете тук: MapReduce Patterns, Algorithms, and Use Cases.
  1. Binary search (двоично търсене) –  техника за намиране на определена стойност в едномерен масив (или в коя да е структура от данни, която е сортирана), като се изключва половината част от данните при всяка стъпка.
  2. Dijkstra's algorithm –  Алгоритъма на Дийкстра се използва за намирането на най-късия път между върховете на граф, като те могат да представляват мрежа от пътища.
  3. Floyd-Warshall – Алгоритъмът на Флойд-Уоршал служи за намиране на най-кратките пътища между всички двойки върхове в претеглен ориентиран граф.
  4. Kruskal algorithmтип алчен алгоритъм. Това е всеки алгоритъм, който се осъществява като на всяка стъпка се избира (локално) максималния (или минималния) елемент от дадено множество, като целта е по този начин да се стигне до глобалния максимум.

Като интересно помагало за по-лесното разбиране на алгоритмите, препоръчваме да разгледате сайта VisuAlgo, където чрез анимации са визуализирани структури от данни и алгоритми.

VisuAlgo

Учете алгоритми със СофтУни!

За всички, които искат да се потопят и разберат алгоритмите из основи, СофтУни организира безплатен курс по алгоритми. Ще развиваме умения за алгоритмично мислене и ще решаваме много алгоритмични проблеми. В обучението ще се включат много лектори с богат опит и участия в състезания по програмиране и информатика. За повече информация и записване, посетете страницата на курса.

Chaos Group Logo

Курсът се подкрепя от Chaos Group, компанията създала един от най-успешните продукти за 3D визуализация – V-Ray. През 1999 г. Петър Митев и Владимир Койлазов, оснвателите на компанията, пускат на пазара първия си продукт - Phoenix, софтуер за симулация на флуиди като огън и пушек. Три години по-късно официално е пусната първата версия на V-Ray за платформата 3ds Max и компанията се превръща в световен лидер в предоставянето на иновативни софтуерни решения за архитектурната, мебелната и развлекателната индустрия и сектора за визуализиране.

Днес Chaos Group има офиси в България, САЩ, Япония и Корея, създала е мрежа от 250 дистрибутора по света и в понастоящем е работодател на над 150 души.

Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.