![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Iron Bug |
![]()
Сообщение
#1
|
|||
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
имхо, не надо тратить время на запоминание алгоритмов. они бывают очень хитрожопые, но пользы от их запоминания нет никакой. разве что ради развлечения на досуге (если таковой имеется). алгоритмы всегда можно найти, когда потребуется. это маленькие кирпичи, из которых строится программа. но они не играют роли, если общая концепция плохо продумана. так что то, что реально полезно в жизни - это паттерны(модели, схемы, принципы) проектирования ПО. по этой теме есть непревзойдённая книжка Эриха Гаммы и компании "Паттерны программирования" (или как-то так, я на английском читала, там она называется Design Patterns: Elements of Reusable Object-Oriented Software). Тут в книгах кто-то выкладывал русский перевод, но мне лично попадался очень распространённый и совершенно чудовищный перевод, полный ошибок, и я бы всё же рекомендовала её читать на английском, при возможности. эта книжка во многом ставит мозги на место и позволяет быстро решать довольно запутанные задачи в программировании. Только нет в стандарте алгоритмов на графах (алгоритма обхода графа, алгоритма нахождения кратчайшего пути ...), алгоритма поиска пары ближайших точек, определения выпуклой оболочки, поиска наибольшего общего делителя и т.д. Задач очень много и решений тоже. И нужно уметь анализировать эти решения, какое из них в твоей ситуации лучшее. это всё (ну, почти всё, что встречается на практике) и ещё куча всякой дребедени есть в бусте. Сообщение отредактировал ViGOur - 21.8.2010, 17:53 |
|||
|
||||
![]() |
igor_bogomolov |
![]()
Сообщение
#2
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
просто основной язык программирования - Си и чаще всего именно на его примере разбираются все алгоритмы и т.п. кто сделал си основным языком? Это для нас с вами он основной. А алгоритмы в осовном описываются на псевдокоде, т.к. это всего лишь последовательность действий для решения конкретной задачи. Кому надо, сам реализует этот алгоритм на конкретном языке.Цитата('Iron Bug' date='20.8.2010 @ 23:33' post=38439) что касается именно алгоритмов - их нет смысла запоминать, так как всегда можно найти. Стандартные найти можно всегда. Так же как и паттерны. Только нужно знать что искать. Поэтому нужно быть в курсе о существующих алгоритмах и знать в каких случаях и к каким структурам данных их применять. Да и знать реализацию (имею в виду умение объяснить на пальцах) основных алгоритмов уж точно не повредит.А вот что делать когда возникает нетривиальная задача? И нужно найти оптимальное её решение? Тут без теории построения и анализа алгоритмов не обойтись. Иначе как вы собираетесь оценивать порядок роста или эффективность своего алгоритма? Для меня теория алгоритмов и паттерны проектирования - это одного поля ягодки. Ориентироваться нужно и там и там. И оба этих вопроса относятся к проектированию и их знания одинаково важны. Согласен, что ошибки проектирования страшны. Но ПО при этом может быть рабочим. С плохим алгоритмом, хоть и рабочим, данное ПО будет никому не интересно и его можно считать не рабочим. |
|
|
![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 3.7.2025, 12:16 |