2010-10-19 6 views
4

Я довольно долго работал над разработкой драйверов RTOS и Linux. Сейчас я беру интервью у полупроводниковых компаний и не отвечаю на вопросы об алгоритмах на строках, а также о сложности времени и пространства. Я не изучал дискретные математики и алгоритмы во время моего, поскольку у меня есть электроника.Основы и математические требования, необходимые для алгоритмов

Как я могу преодолеть этот пробел?

+1

Существует большое вводное определение временных сложностей в SO только http://stackoverflow.com/questions/487258/plain-english-explanation-of-big-o и http://stackoverflow.com/questions/107165/big-o-for-eight-years – Rozuur

ответ

2

Introduction to Algorithms является большой алгоритмы книги (а также случается быть перечислены 6-го на большой influential book question)

+1

отличная книга для не для начинающих и для самостоятельного изучения! – zengr

5

Начните с чего-то простого, как: Algorithms in a Nutshell (хорошей отправной точкой для интервью, как вопросы)

alt text

or Algorithms For Interviews Когда вы чувствуете, что знаете эту книгу, вы можете подумать о погружениях в введение в Алгоритмы.

+0

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

+1

Как один из авторов «Алгоритмов для интервью», я согласен с Полом в том, что эта книга не заменяет учебник. Но я также частично не согласен. Джаммулак уже работал над сложными проектами программного обеспечения, и AFI может быть интересным способом научить материал самому себе и быстро подготовить интервью. Конечно, ему может понадобиться способ посмотреть вещи в сети или в учебнике, когда он застрял. –

3

Вам необходимо просмотреть большую часть материала курса для класса Data Structures and Algorithms. Чтобы ответить на те вопросы, связанные с собеседованием, вам, как правило, не требуется материал, описанный в Discrete Math.

Если вы хотите пройти долгий путь (и на самом деле понять тему), я рекомендую вам действительно работать через материал класса и слушать лекции. Так как UC Berkeley сообщения некоторых из своих лекций в Интернете, вы можете смотреть именно такой класс (с отличным инструктором) здесь:

http://webcast.berkeley.edu/course_details.php?seriesid=1906978343

Обратите особое внимание на лекцию по Big O нотации и сортировка и поиск алгоритмы. Они, как правило, являются битами, которые люди спрашивают о собеседовании.

Если вы не можете быть обеспокоены, чтобы фактически провести 30 часов смотреть лекции и многое другое работает через проблемы, вы должны по крайней мере, проконсультироваться книгу, которая использует курс:

Goodrich and Tamassia's Data Structures and Algorithms in Java

1

Я бы предлагаю вам введение в алгоритмы (по CLRS) и руководство по разработке алгоритмов для алгоритмов и сложности (steven skienna) для понимания алгоритмов и сложности. Кроме того, существует довольно много хороших обучающих программ по алгоритмам и сложности в верхнем кодере (сайт: topcoder .com/tc), вы также можете проверить их.

Смежные вопросы