کتاب حاضر در ویراست پنجم خود به سر می برد و در این ویراست نیز همانند ویراست های قبلی از شبه کد ++C برای نوشتن الگوریتم ها استفاده شده است، زیرا ارائه الگوریتم های پیچیده با یک زبان برنامه سازی خاص می تواند درک آن را برای دانشجویان دشوار کند.
در این کتاب به طراحی الگوریتم ها، تحلیل پیچیدگی الگوریتم ها و پیچیدگی محاسباتی (تحلیل مسأله ها) پرداخته می شود. این کتاب یک مرجع مناسب و عالی برای درس طراحی الگوریتم ها در تمامی رشته های کامپیوتر محسوب می شود.
فصل اول: کارایی، تحلیل و مرتبه الگوریتمها
1-1. الگوریتمها
1-2. اهمیت توسعهی الگوریتمهای کارآمد
1-3. تحلیل الگوریتمها
1-4. مرتبه الگوریتم
1-5. خلاصهای از کتاب
تمرینها
تمرینهای اضافی
فصل دوم: روش تقسیم و حل
2-1. جستجوی دودویی
2-2. مرتبسازی ادغامی
2-3. رویکرد تقسیم و حل
2-4. مرتبسازی سریع
2-5. الگوریتم ضرب ماتریسها به روش استراسن
2-6. اَعمال محاسباتی روی اعداد صحیح بزرگ
2-7. تعیین مقادیر آستانه
2-8.کجا نمیتوان از روش تقسیم و حل استفاده کرد؟
تمرینها
تمرینهای اضافی
فصل سوم: برنامهریزی پویا
3-1. ضرب دو جملهای
3-2. الگوریتم فلوید برای یافتن کوتاهترین مسیر
3-3. برنامهریزی پویا و مسألههای بهینهسازی
3-4. ضرب زنجیر ماتریسها
3-5. درختهای جستجوی دودویی بهینه
3-6. مسألهی فروشندهی دورهگرد
3-7. همترازی دنبالهها
تمرینها
تمرینهای اضافی
فصل چهارم: رویکرد حریصانه در طراحی الگوریتم
4-1. درختهای پوشای کمینه
4-2. الگوریتم دیکسترا برای تعیین کوتاهترین مسیر از مبدأ واحد
4-3. زمانبندی
4-4. کد هافمن
4-5. روش حریصانه در مقابل برنامهریزی پویا: مسألهی کولهپشتی
تمرینها
تمرینهای اضافی
فصل پنجم: راهبرد عقبگرد
5-1. تکنیک عقبگرد
5-2. مسألهی n وزیر
5-3. استفاده از الگوریتم مونت کارلو برای برآورد کارایی الگوریتم عقبگرد
5-4. مسألهی حاصلجمع زیرمجموعهها
5-5. رنگآمیزی گراف
5-6. مسألهی مدارهای هامیلتونی
5-7. مسألهی کولهپشتی صفر و یک
تمرینها
تمرینهای اضافی
فصل ششم: راهبرد شاخه و حد
6-1. تشریح روش شاخه و حد با مسألهی کولهپشتی صفر و یک
6-2. مسألهی فروشندهی دورهگرد
6-3. استنتاج قیاسی (تشخیص بیماری)
تمرینها
تمرینهای اضافی
فصل هفتم: مقدمهای بر پیچیدگی محاسباتی: مسألهی مرتبسازی
7-1. پیچیدگی محاسباتی
7-2. مرتبسازی درجی و مرتبسازی انتخابی
7-3. کران پایین برای الگوریتمهایی که در هر مقایسه یک وارنگی را حذف میکنند
7-4. نگاهی دوباره به مرتبسازی ادغامی
7-5. نگاهی دوباره به مرتبسازی سریع
7-6. مرتبسازی هیپ
7-7. مقایسهی مرتبسازی ادغامی، مرتبسازی سریع و مرتبسازی هیپ
7-8. کرانهای پایینی برای مرتبسازی فقط با مقایسهی کلیدها
7-9. مرتبسازی از طریق توزیع (مرتبسازی مبنایی)
تمرینها
تمرینهای اضافی
فصل هشتم: باز هم دربارهی پیچیدگی محاسباتی: مسألهی جستجو
8-1. کرانهایی پایین برای جستجو با مقایسهی کلیدها
8-2. جستجوی درونیابی
8-3. جستجو در درختان
8-4. درهمسازی
8-5. مسألهی انتخاب: مقدمهای بر بحث مخالف
تمرینها
تمرینهای اضافی
فصل نهم: پیچیدگی محاسباتی و کنترلناپذیری: آشنایی با نظریهی NP
9-1. مسألههای کنترلناپذیر
9-2. نگاهی دوباره به اندازهی ورودی
9-3. سه گروه کلی مسألهها
9-4. نظریهی NP
9-5. پردازش مسألههای NP سخت
تمرینها
تمرینهای اضافی
فصل دهم: الگوریتمهای ژنتیک و برنامهنویسی ژنتیک
10-1. مروری بر مفاهیم ژنتیک
10-2. الگوریتمهای ژنتیک
10-3. برنامهنویسی ژنتیک
10-4. بحث و مطالعه بیشتر
تمرینها
فصل یازدهم: الگوریتمهای نظریه اعداد
11-1. مروری بر نظریه اعداد
11-2. محاسبه بزرگترین مقسومعلیه مشترک
11-3. مروری بر حساب همنهشتی
11-4. حل معادلات خطی پیمانهای
11-5. محاسبهی توانهای پیمانهای
11-6. یافتن اعداد اول بزرگ
11-7. سیستمهای رمزنگاری کلید عمومی RSA
تمرینها
تمرینهای اضافی
فصل دوازدهم: مقدمهای بر الگوریتمهای موازی
12-1. معماریهای موازی
12-2. مدل PRAM
تمرینها
تمرینهای اضافی
واژهنامه انگلیسی به فارسی
پیوست اول: مروری بر ریاضیات
پیوست دوم: حل معادلات بازگشتی: با اکربردهای تحلیل الگوریتمهای بازگشتی
پیوست سوم: ساختماندادهها برای مجموعههای از هم جدا