خلاصه
به عنوان یک مهندس نرمافزار، با چالشهای برنامهنویسی بیشماری روبرو خواهید شد که در ابتدا گیجکننده، دشوار یا حتی غیرممکن به نظر میرسند. ناامید نشوید! بسیاری از این مسائل «جدید» از قبل راهحلهای اثباتشدهای دارند. «الگوریتمها و ساختارهای داده پیشرفته» رویکردهای قدرتمندی را برای طیف گستردهای از چالشهای پیچیده کدنویسی به شما آموزش میدهد که میتوانید آنها را در برنامههای خود تطبیق داده و اعمال کنید. این راهنمای عملی با ارائه ترکیبی متعادل از الگوریتمهای کلاسیک، پیشرفته و جدید، جعبه ابزار برنامهنویسی شما را با دیدگاههای جدید و تکنیکهای عملی ارتقا میدهد.
درباره فناوری
آیا میتوانید سرعت و کارایی برنامههای خود را بدون سرمایهگذاری در سختافزار جدید بهبود بخشید؟ خب، بله، میتوانید: نوآوریها در الگوریتمها و ساختارهای داده منجر به پیشرفتهای عظیمی در عملکرد برنامهها شده است. این کتاب را بردارید تا مجموعهای از الگوریتمهای پیشرفته را کشف کنید که شما را به یک توسعهدهنده مؤثرتر تبدیل میکند.
درباره کتاب
کتاب «الگوریتمها و ساختارهای داده پیشرفته» مجموعهای از الگوریتمها را برای چالشهای برنامهنویسی پیچیده در تحلیل دادهها، یادگیری ماشین و محاسبات گراف معرفی میکند. شما رویکردهای پیشرفتهای را برای انواع سناریوهای دشوار کشف خواهید کرد. حتی یاد خواهید گرفت که ساختارهای داده خود را برای پروژههایی که نیاز به یک راهحل سفارشی دارند، طراحی کنید.
آنچه در داخل کتاب وجود دارد
بر اساس ساختارهای داده پایهای که از قبل میدانید، بسازید
الگوریتمهای خود را برای سرعت بخشیدن به برنامه، نمایهسازی کنید
رشتههای جستجو و پرسوجو را به طور مؤثر ذخیره کنید
الگوریتمهای خوشهبندی را با MapReduce توزیع کنید
مسائل لجستیک را با استفاده از گرافها و الگوریتمهای بهینهسازی حل کنید
درباره خواننده
برای برنامهنویسان سطح متوسط.
درباره نویسنده
مارچلو لا روکا یک دانشمند تحقیقاتی و یک مهندس فولاستک است. تمرکز او بر الگوریتمهای بهینهسازی، الگوریتمهای ژنتیک، یادگیری ماشین و محاسبات کوانتومی است.
فهرست مطالب
۱ معرفی ساختارهای داده
بخش ۱ بهبود ساختارهای داده پایه
۲ بهبود صفهای اولویتدار: هیپهای d-way
۳ Treaps: استفاده از تصادفیسازی برای متعادلسازی درختهای جستجوی دودویی
۴ فیلترهای بلوم: کاهش حافظه برای ردیابی محتوا
۵ مجموعههای مجزا: پردازش زمان زیرخطی
۶ Trie، radix trie: جستجوی رشته کارآمد
۷ مورد استفاده: حافظه نهان LRU
بخش ۲ پرسوجوهای چندبعدی
۸ جستجوی نزدیکترین همسایهها
۹ درختهای K-d: نمایهسازی دادههای چندبعدی
۱۰ درختهای جستجوی شباهت: جستجوی تقریبی نزدیکترین همسایهها برای بازیابی تصویر
۱۱ کاربردهای جستجوی نزدیکترین همسایه
۱۲ خوشهبندی
۱۳ خوشهبندی موازی: MapReduce و خوشهبندی سایبان
بخش ۳ گرافهای مسطح و حداقل عدد عبور
۱۴ مقدمهای بر گرافها: یافتن مسیرهایی با حداقل فاصله
۱۵ جاسازی گراف و مسطح بودن: ترسیم گرافهایی با حداقل تقاطع لبهها
16 گرادیان نزولی: مسائل بهینهسازی (نه فقط) روی گرافها
17 شبیهسازی تبرید: بهینهسازی فراتر از حداقلهای محلی
18 الگوریتمهای ژنتیک: بهینهسازی با الهام از زیستشناسی و همگرایی سریع






























