Основы обучения алгоритмам и структурам данных [закрыто]


можете ли вы порекомендовать мне книгу или (лучше!) сайт со многими хард проблемы и упражнения о структурах данных?

Я уже отвечаю на вопросы проекта Эйлера, но эти вопросы касаются интересных, но необычных алгоритмов. Я почти не использовал даже простое дерево. Может быть, есть сайт с упражнениями типа: Эй, вам нужно рассчитать это: ... . Сделать это с помощью дерева. Теперь сделайте это с помощью молнии. Загрузите свой C (Haskell, Lisp, даже Pascal или Крепость) раствора. Да, ваше решение так медленно!

самообразование очень трудно, то вы пытаетесь узнать очень общие, фундаментальные вещи. Как я могу помочь себе с ними, не посещая курсы или что-то еще?

10 54

10 ответов:

введение в алгоритмы, третье издание, Cormen, Leiserson, Rivest and Stein - это хорошее введение в алгоритмы и структуры данных. Он имеет много упражнений в конце каждой главы. большинство из них просты, но есть и более сложные.

видео-лекции Национальная программа по технологическому усовершенствованному обучению (NPTel) at NPTEL Youtube channel. Они осуществляются семью ИИТ и МПК Бангалор Индии и финансируются MHRD, правительством Индии.

много инженерно-лекции.

удивительная бесплатная электронная книга -" структуры данных и алгоритмы". Содержит реализацию общих алгоритмов в псевдокоде и в явном виде. К тому же, довольно приятные и понятные схемы и графика.

Даже Джон Скит отметил, что в своем блоге. : -)

кроме того, это менее 100 страниц книги (Как вы знаете, много программистов не читайте некоторые книги).

этой и дубликатом.

Я бы рекомендовал MIT open courseware site здесь. Есть алгоритмы курсы в разделе" электротехника и информатика " несколько ниже по странице.

6.006 - Introduction to Algorithms
6.046J - Introduction to Algorithms (SMA 5503)

Я рекомендую последнее. Материалы на сайте. Видео, вероятно, лучше всего доступны с YouTube здесь - поиск "mit алгоритмы". Элемент учебник пользуется уважением. Третье издание только что вышел, второе издание соответствует курсу. Первое издание также было включено в состав Dr Dobbs алгоритмы и структуры данных CD ROM.

У Никлауса Вирта есть книга алгоритмов и структур данных, доступная для загрузки с его персональный сайт. У меня есть версия для печати Modula 2, и пока это не замена Cormen (или АХО хопкрофт Ульман и т. д.) Это хорошая книга.

помимо вышеупомянутых Cormen, Leiserson и Rivest, есть также очень новая книга Питера Брасса,"Дополнительные Структуры Данных". Он имеет относительно уродливый пример кода на C, и автор несколько фанатичен в отношении производительности (например, он не использует рекурсию), но теоретическое содержание этой книги блестяще и уникально, оно вряд ли пересекается с Корменом. Я ожидаю, что он станет классикой.

Если вы хотите практиковаться, вы можете посмотреть на http://www.topcoder.com, они предлагают алоритм вызовы.

http://www.youtube.com/watch?v=QMV45tHCYNI

CS 61B: структуры данных-осень 2006

Инструктор: Джонатан Shewchuk

основные динамические структуры данных, включая линейные списки, очереди, деревья и другие связанные структуры; массивы строк и хэш-таблицы. Управление памяти. Элементарные принципы разработки программного обеспечения. Абстрактные типы данных. Алгоритмы сортировки и поиска. Введение в программирование на Java язык.

также вы можете прочитать эту книгу для алгоритмов..

http://www.amazon.com/Data-Structures-Algorithms-Made-Easy/dp/1466304162

Если вы хотите поучительную альтернативу для обучения алгоритмов вы всегда можете попробовать:Рабхи Ф., Алгоритмы Lapalme Г... подход функционального программирования.

авторы бросают вызов более традиционным методика обучения алгоритмов по использование функционального программирования связи с Haskell как язык реализации. Это приводит к меньше, яснее и элегантнее программы, которые позволяют программисту чтобы понять алгоритм себя быстрее и использовать это понимание для изучения альтернативы решения. Делая акцент на разработка программы, а не математические свойства алгоритмов, в книге используется последовательность практические примеры программирования для развивайте в читателе решение проблем навыки, которые могут быть легко переведены на другой язык paradigms.to другие языковые парадигмы.

Что касается сайта с (жесткими) упражнениями, которые вы всегда можете попробовать решить, я рекомендую:spoj .

хороший учебник с упражнениями в конце, кажется, лучший способ пойти.

дополнительно к действительно хорошему учебнику введение в алгоритмы, третье издание, Cormen, Leiserson, Rivest and Stein, Я бы очень рекомендовал смотреть онлайн доступно видео лекций, прочитанных Лейзерсоном в MIT. Если у вас есть книги и лекции, это, как вы учились в MIT ;-)

http://videolectures.net/mit6046jf05_introduction_algorithms/