A hands-on, problem-based introduction to building algorithms and data structures to solve problems with a computer. Algorithmic Thinking will teach you how to solve challenging programming problems and design your own algorithms. Daniel Zingaro, a master teacher, draws his examples from world-class programming competitions like USACO and IOI. You’ll learn how to classify problems, choose data structures, and identify appropriate algorithms. You’ll also learn how your choice of data structure, whether a hash table, heap, or tree, can affect runtime and speed up your algorithms; and how to adopt powerful strategies like recursion, dynamic programming, and binary search to solve challenging problems. Line-by-line breakdowns of the code will teach you how to use algorithms and data structures like: • The breadth-first search algorithm to find the optimal way to play a board game or find the best way to translate a book • Dijkstra’s algorithm to determine how many mice can exit a maze or the number of fastest routes between two locations • The union-find data structure to answer questions about connections in a social network or determine who are friends or enemies • The heap data structure to determine the amount of money given away in a promotion • The hash-table data structure to determine whether snowflakes are unique or identify compound words in a dictionary NOTE: Each problem in this book is available on a programming-judge website. You’ll find the site’s URL and problem ID in the description. What’s better than a free correctness check?
ترجمه فارسی (ترجمه ماشینی)
مقدمه ای عملی و مبتنی بر مشکل برای ساخت الگوریتم ها و ساختارهای داده برای حل مشکلات با رایانه. تفکر الگوریتمی به شما یاد می دهد که چگونه مسائل چالش برانگیز برنامه نویسی را حل کنید و الگوریتم های خود را طراحی کنید. دانیل زینگارو، استاد استاد، نمونه های خود را از مسابقات برنامه نویسی در سطح جهانی مانند USACO و IOI می گیرد. شما یاد خواهید گرفت که چگونه مسائل را طبقه بندی کنید، ساختارهای داده را انتخاب کنید، و الگوریتم های مناسب را شناسایی کنید. همچنین خواهید آموخت که چگونه انتخاب ساختار داده شما، اعم از جدول هش، پشته یا درخت، می تواند بر زمان اجرا تأثیر بگذارد و الگوریتم های شما را سرعت بخشد. و چگونگی اتخاذ استراتژی های قدرتمند مانند بازگشت، برنامه نویسی پویا و جستجوی باینری برای حل مشکلات چالش برانگیز. تجزیه خط به خط کد به شما یاد می دهد که چگونه از الگوریتم ها و ساختارهای داده استفاده کنید: • الگوریتم جستجوی پهنا اول برای یافتن راه بهینه برای انجام یک بازی رومیزی یا یافتن بهترین راه برای ترجمه کتاب • الگوریتم دایکسترا تعیین تعداد موش هایی که می توانند از پیچ و خم خارج شوند یا تعداد سریع ترین مسیرها بین دو مکان • ساختار داده اتحاد یافتن برای پاسخ به سؤالات مربوط به اتصالات در یک شبکه اجتماعی یا تعیین اینکه چه کسانی دوست یا دشمن هستند • ساختار داده پشته برای تعیین مقدار پولی که در تبلیغات اهدا می شود • ساختار داده جدول هش برای تعیین اینکه دانه های برف منحصر به فرد هستند یا کلمات مرکب را در فرهنگ لغت شناسایی می کند. آدرس سایت و شناسه مشکل را در توضیحات پیدا خواهید کرد. چه چیزی بهتر از یک بررسی صحت رایگان؟
نقد و بررسیها
هنوز بررسیای ثبت نشده است.