2014-01-20 4 views
1

Я хочу улучшить свои навыки программирования, когда я участвую в некоторых соревнованиях по программированию. Я чувствую, что каждая сложность настолько сложна, что я не могу ее решить, я хорошо знаю кодировку, но я упал до решить алгоритм, необходимый для решения конкретной проблемы, для этого может кто-нибудь сказать мне, какие книги следует читатьНужна помощь в программировании алгоритмов решения проблем

+1

Этот вопрос в основном основан на мнениях. StackOverflow обозначает конкретные ситуации. –

+0

Все его восприятие. Вам просто нужно учиться на опыте, чтобы он длился долго, так как вы говорите: «Каждая задача настолько сложна, что я не могу ее решить», это может быть полезно в первый раз, когда вы видите такую ​​проблему, поэтому сначала вы можете потерпеть неудачу и научиться , но в следующий раз, когда у вас был опыт в один раз, это так, как это сработало для меня, и да, книги - это быстрый источник, но старайтесь получить собственный опыт, это также имеет большое значение. И это от темы в любом случае приветствуется переполнение стека ..!! ;) – MissingNumber

+0

Практика решения простых вопросов программирования на TopCoder, HackerRank, HackerEarth, CodeChef, SPOJ и многих других сайтах. Практика делает человека идеальным! – vishram0709

ответ

0

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

Теперь, чтобы решить алгоритмическую проблему сначала, чтобы понять элементарный алгоритм, функционирующий через книжные или онлайн-ресурсы. Если вы используете coreman (хорошая книга для algo), вы можете понять основные понятия различных методов сортировки, кучи, очереди, хэширования, жадного и динамического алгоритма. По какой-то теме я бы рекомендовал исследовать онлайн, а также - как динамическое программирование и хеширование. Почти 70-80% вопросов интервью либо хешируются, либо основаны на DP. Затем найдите основные примеры и их решение для этого алгоритма. Как только ваш ум будет настроен, вы сможете быстро подумать об любой алгоритмической проблеме.

+0

Спасибо человеку .. я сделаю необходимое –

0

Introduction to Algorithms Томас Х. Кормен, Чарльз Э. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн - это хорошо для начала. Охватывает почти все, от теории графов до геометрических алгоритмов и всех связанных структур данных, кроме того, они используют обычно используемую нотацию «Big O», чтобы указать эффективность объясненных алгоритмов. В большинстве случаев для одной и той же проблемы представлены несколько алгоритмов, а также их преимущества и недостатки.

+0

Спасибо человеку .. можете предложить любую книгу, которая покрывает математические формулы и трюки, чтобы решить данную проблему быстро? –

+0

В книге, которую я предложил большую часть времени, используется математика, чтобы объяснить проблему и доказать псевдокод. Они берут проблему, делают ее более абстрактной с использованием математики и решают ее с помощью псевдокода. Для чистых математических алгоритмов, которые могут решить почти каждую проблему, см. Главы по линейному программированию и диаграмме. С этими двумя вы вошли в совершенно новый мир решения проблем :) Однако вы можете начать просто, изучая (эффективную) сортировку и поиск массивов, чтобы ознакомиться с алгоритмами вообще и обозначениями. –

+0

Спасибо, человек .. Я с нетерпением жду этого .. :) –

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