Loading...

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

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

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

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

Първата стъпка към разбирането на алгоритмите и защо са толкова важни е да определим какво значи „алгоритъм“. Според популярната книга „Въведение в алгоритмите“ („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

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

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

Chaos Group Logo

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

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