2012-05-14 18 views
5

USACO gibi programlama yarışmalarının algoritmalarını öğrenmenin en iyi yolları nelerdir? Gümüş bölüme yeni girdiğim gibi algoritma öğrenmeye başladım. Java'da Dijkstra's, Dynamic Programming, Flood-fill, vb. Gibi algoritma ve teknikleri öğrenmek ve bunları problemlere nasıl uygulayabileceğimizi bilmek için iyi bir kitap veya eğitim var mı? Yardım için çok teşekkürler!Programlama yarışmalarına yönelik algoritmaları nasıl öğrenebilirim?

+4

Yerel bir kolejde ders almak muhtemelen başlamak için en iyi yerdir. Aksi takdirde algoritmalarla ilgili bir kitap seçmek başka bir seçenektir. –

+3

Kitap [Programlama Zorlukları] (http://www.amazon.com/Programming-Challenges-Steven-S-Skiena/dp/0387001638/ref=sr_1_1?ie=UTF8&qid=1336971355&sr=8-1) kitabına ne dersiniz? –

+1

İçinde rekabet edin – Bohemian

cevap

4
  1. UYGULAMA! Bu en önemli nokta. Çevrimiçi yargıçlarda SPOJ, UVA, vb. gibi problemleri düzenli olarak çözebilirsiniz. Daha fazla problem çözme, programlama yarışmalarında sorulan soruların türünü ve formatını öğrenecektir. Bu şekilde, kendi algoritmalarınızı elde etme ve problemleri görme yeteneğinizi de artıracaksınız.

  2. Introduction To Algorithm, Cormen'u edinin. Algoritma ve veri yapılarının öğrenilmesi ve analizi için mükemmel bir kitaptır.

+0

[UVA] (http://uva.onlinejudge.com/) link bozuk görünüyor – gahcep

+0

bağlantı, ama UVA sitesi şu an için aşağı. – nims

+2

CLRS'nin (* Algoritmalara Giriş *) yeni başlayanlar için en iyi kitap olduğuna katılmıyorum. Son derece mathy ve kuru. Bunun yerine, Vazirani ve Dasgupta'ın * Algoritmalarını * deneyin. Baskı öncesi sürümü ücretsiz bir PDF olarak mevcuttur: Google bunun için. Çok daha ilgi çekici bir tarzda yazılmıştır ve yine de gereken noktaların çoğuna ulaşmayı başarır - belki daha az titizlikle, ancak bunu daha sonra CLRS'den alabilirsiniz. –

İlgili konular