Cantitate/Preț
Produs

Algorithmic Thinking, 2nd Edition: Learn Algorithms to Level Up Your Coding Skills

Autor Daniel Zingaro
en Limba Engleză Paperback – 23 ian 2024

Ceea ce diferențiază Algorithmic Thinking, 2nd Edition de documentația oficială sau de manualele universitare rigide este eliminarea demonstrațiilor matematice dense în favoarea unei abordări bazate pe rezolvarea de probleme reale. Daniel Zingaro transformă teoria abstractă într-un set de instrumente practice, utilizând puzzle-uri selectate din competiții de programare pentru a ilustra concepte precum tabelele hash, recursivitatea sau grafurile. Descoperim aici un flux de lucru orientat spre performanță: nu învățăm doar ce este un algoritm, ci cum să alegem structura de date optimă pentru a maximiza viteza de execuție.

Această a doua ediție extinde materialul original cu secțiuni vitale despre programarea dinamică și algoritmii randomizați, oferind explicații îmbunătățite și exemple de cod în limbajul C. Suntem de părere că utilizarea limbajului C este o decizie strategică, forțând programatorul să înțeleagă ce se întâmplă sub capota abstractizărilor moderne. Pe linia practică a lucrării A Common-Sense Guide to Data Structures and Algorithms, dar cu un focus specific pe mediul competitiv și pe implementări de nivel jos, volumul de față servește drept punte între sintaxă și arhitectura logică a unui program.

Poziționată în continuarea preocupărilor autorului pentru educația aplicată, așa cum am văzut în Learn to Code by Solving Problems, lucrarea rafinează conceptul de „gândire algoritmică” prezentat și în Invariants. Dacă în volumele anterioare Daniel Zingaro punea bazele logicii de programare, aici el ridică ștacheta către eficiență și optimizare, pregătind cititorul pentru provocări tehnice unde timpul de execuție este critic. Este o resursă care transformă codul funcțional în cod performant prin stăpânirea strategiilor de căutare binară, Dijkstra sau BFS.

Citește tot Restrânge

Preț: 24156 lei

Preț vechi: 37770 lei
-36%

Puncte Express: 362

Carte disponibilă

Livrare economică 22 mai-02 iunie
Livrare express 06-12 mai pentru 8740 lei


Specificații

ISBN-13: 9781718503229
ISBN-10: 1718503229
Pagini: 480
Dimensiuni: 177 x 234 x 32 mm
Greutate: 0.9 kg
Ediția:2nd Edition
Editura: Penguin Random House Group
Colecția No Starch Press
Locul publicării:United States

De ce să citești această carte

Recomandăm această carte programatorilor care doresc să treacă de la scrierea codului la proiectarea sistemelor eficiente. Veți câștiga o înțelegere profundă a modului în care structurile de date influențează performanța, totul prin exerciții practice din concursuri de profil. Este resursa ideală pentru cei care preferă implementările concrete în C și vor să evite expunerile teoretice excesiv de matematice.


Descriere

Knowing how to design algorithms will take you from being a good programmer to a great programmer. This completely revised second edition teaches you how to design your own rocket-fast, right-for-the-task algorithms-minus the proofs and complex math. Forget the useless pseudocode and played-out examples you've seen in other books. Author and award-winning educator Dan Zingaro draws problems straight from online programming competitions to rigorously teach you all of the heavyweights you need to know, like hash tables, recursion, trees, graphs, and heaps. As he guides you to the perfect algorithmic solution for each unique programming puzzle, you'll build up a toolkit of go-to algorithms for quickly and correctly solving any problem you come across. The second edition features several entirely new chapters on dynamic programming and randomized algorithms, as well as more effective problems and enhanced explanations. Code examples are provided using the C language. Learn how to: Classify problems, choose data structures, and identify appropriate algorithms; Choose between data structures like hash tables, heaps, or trees, based on how they affect runtime and speed; Adopt powerful strategies like recursion, dynamic programming, and binary search to solve challenging problems; Apply the breadth-first search algorithm to find the optimal way to play a board game, Dijkstra's algorithm to determine the fastest routes between two locations, and many more.