Какие алгоритмы должен знать уважающий себя программист?

5 марта, 16:21 Разное 3911 6
Какие алгоритмы должен знать уважающий себя программист?
6 комментариев
Сортировка:
Добавить комментарий
Andrey Kolosov
Andrey Kolosov 2019, 5 марта, 22:23
0
Я не могу сказать, какие из алгоритмов более важные. Думаю, предпочтительнее знать несколько алгоритмов из каждого класса. Сортировка пузырьком хорошо работает, когда, к примеру, у вас есть 4 элемента в массиве, которые нужно отсортировать для генетического алгоритма. Но следует помнить, что использование быстрой сортировки не всегда лучший выбор.
Николай Марчук
Николай Марчук 2019, 5 марта, 21:41
0
Во-первых, это умение решать непонятные задачи. В нечетких формулировках жизненных задач видеть возможные строгие трактовки. По строгим трактовкам накидывать варианты решения. Всесторонне анализировать разные варианты и выбирать самый подходящий. Очевидно, для этого недостаточно просто знать алгоритмы. Нужно уметь “видеть их”, распознавать возможности их применения. Во-вторых, алгоритмическая подготовка должна прививать привычку анализировать эффективность каждого вашего решения. Не пропускать в критических местах квадратичные или экспоненциальные алгоритмы, и не закладывать в архитектуру программы идеи, которые потом невозможно будет реализовать достаточно эффективно. В-третьих, алгоритмическая подготовка должна помогать умело пользоваться готовыми инструментами. Базы данных — это сплошные структуры данных и алгоритмы. Причем на концептуальном уровне довольно простые и понятные — деревья поиска, хэштаблицы, SS-Table, …
Виктор Чуй
Виктор Чуй 2019, 5 марта, 20:18
0
Да, хорошая алгоритмическая подготовка важна для программиста. И нет, хорошая — это вовсе не заучивание алгоритмов из списка «Самых Важных Алгоритмов, Которые Должен Знать Каждый».
Роман Маслюк
Роман Маслюк 2019, 5 марта, 20:16
0
Алгоритмы не важны. Вы можете найти их в Гугле за несколько минут. Уважающий себя программист должен уметь правильно ставить строки, понимать задачи клиентов, мудро выбирать между краткосрочными и долгосрочными целями, всегда изучать что-то новое и не боятся сложных задач. Важны умения и личные качества – чистая теория перестала быть важной после создания Гугла.
Michail Denisenko
Michail Denisenko 2019, 5 марта, 19:27
0
Уважающий себя программист должен понимать абсурдность данного вопроса.
Maks
Maks 2019, 5 марта, 17:26
0
Он должен уметь выводить алгоритмы, а не знать их. Ровно как и математик должен уметь выводить доказательства. На каких алгоритмах стоит потренироваться в выводе: сортировки – от пузырька, до параллельной кеш-независимой сортировки; динамическое программирование; алгоритмы сжатия данных – кодирование Хаффмана, арифметическое кодирование, сжатие подпоследовательностей; символические вычисления – как организовать; как сделать статическую структуру динамической – как сделать быструю (O(logN)) вставку в упорядоченный массив.