محسن=0
یک شنبه 20 مرداد 1392, 09:56 صبح
سلام
بهترین کتاب طراحی الگوریتم کدومه ؟من 3 کتاب مد نظر دارم.زبان برنامه نویسی من C و C++ هست
.
1:طراحی الگوریتم ها با استفاده از شبکه کد C++
نویسنده ش ریچارد نئوپولیتن هست و425 صفحه داره و شامل مباحث زیر میشه
-تحلیل و بررسی کارایی
2-تقسیم و غلبه
3-برنامه نویسی پویا
4-روش حریص
5-بازگشت به عقب
6-شاخه و حد
7-معماری ها و الگوریتم های موازی
/////////////////////////////////////////////////////////////////////////////////////////////////////////
2: الگوریتم و فلوچارت
نویسنده بهرام غلامی (http://www.fardabook.com/catalogsearch/advanced/result/?author=%D8%A8%D9%87%D8%B1%D8%A7%D9%85+%D8%BA%D9%8 4%D8%A7%D9%85%DB%8C)علیرضا جباریه (http://www.fardabook.com/catalogsearch/advanced/result/?author=%D8%B9%D9%84%DB%8C%D8%B1%D8%B6%D8%A7+%D8%A C%D8%A8%D8%A7%D8%B1%DB%8C%D9%87)
و تعداد صفحه 225 و انتشارات موسسه فرهنگی هنری دیباگران تهران.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
3:اصول طراحی الگوریتمها
نویسنده ریچارد نئوپولیتن و انتشارات پارسه و مترجم سعید هراتیان و مهرداد توانا و 708 صفحه داره و فهرست مطالبش در زیر اوردم
فهرست مطالب:
فصل 1 الگوریتمها ، کارائی ، آنالیز و مرتبه 1-1 الگوریتمها 18 2-1 اهمیت توسعة الگوریتمهای کارآمد 26 1-2-1 جستجوی ترتیبی در مقابل جستجوی دودوئی 27 2-2-1 سری فیبوناچی 30 3-1 تحلیل الگوریتمها 36 1-3-1 تحلیل پیچیدگی (Complexity Analysis) 36 پیچیدگی زمانی تمامی – حالات برای الگوریتم 2-1 (مجموع اعضای آرایه) 39 تحلیل پیچیدگی زمانی تمامی – حالات در الگوریتم 4-1 (ضرب ماتریس) 39 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 1-1 (جستجوی ترتیبی) 40 تحلیل پیچیدگی زمانی حالت میانگین الگوریتم 1-1 (جستجوی ترتیبی) 41 اتحلیل پیچیدگی زمانی بهترین – حالت الگوریتم 1-1 (جستجوی ترتیبی) 43 2-3-1 اعمال تئوری 44 3-3-1 تحلیل صحت الگوریتم (Correctness) 46 1-4-1 مقدمهای کلی در مورد مرتبه (Order) 47 2-4-1 مقدمهای دقیق در مورد مرتبه 50 3-4-1 بکارگیری یک حد برای تعیین مرتبه 62 5-1 رئوس مطالب این کتاب 64 تمرینات 65 فصل 2 تقسیم - و - حل 1-2 جستجوی دودویی (Binary Search) 72 تحلیل پیچیدگی زمانی برترین حالت الگوریتم 1-2 76 2-2 مرتبسازی ادغامی (MergeSort) 77 تحلیل پیچیدگی زمانی برترین حالت الگوریتم 3-2 (ادغام) 81 تحلیل پیچیدگی زمانی برترین حالت الگوریتم 2-2 (مرتبسازی ادغامی) 81 3-2 روش تقسیم – و –حل 84 4-2 مرتبسازی سریع یا QuickSort (مرتبسازی معاوضهای تفکیکی) 85 تحلیل پیچیدگی زمان تمامی حالات الگوریتم 7-2 (Partition) 88 تحلیل پیچیدگی زمانی برترین حالت الگوریتم 6-2 (QuickSort) 89 تحلیل پیچیدگی زمان حالت میانگین الگوریتم 6-2 (QuickSort) 91 5-2 الگوریتم ضرب ماتریس استراسن (Stressen) 93 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 8-2 از نظر تحلیل تعداد ضربها (استراسن) 96 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 8-2 از نظر تحلیل تعداد جمعها / تفریقها (استراسن) 97 6-2 عملیات ریاضی بر روی اعداد بزرگ 99 1-6-2 نمایش اعداد صحیح بزرگ: عملیات جمع و سایر عملیات با زمان خطی 99 2-6-2 ضرب اعداد بزرگ 100 تحلیل پیچیدگی زمانی برترین حالت الگوریتم 9-2 (ضرب عدد صحیح بزرگ) 102 تحلیل پیچیدگی زمانی برترین حالت الگوریتم 10-2 (نگارش دوم ضرب اعداد بزرگ) 104 7-2 تعیین آستانهها (Thresholds) 106 8-2 چه زمانی نباید از تکنیک تقسیم – و – حل استفاده کرد 111 تمرینات 112 فصل 3 برنامه سازی پویا(Dynamic Programming) مرور کلی 121 1-3 ضریب دو جملهای (Binomial Coefficient) 122 2-3 الگوریتم فلوید برای یافتن کوچکترین مسیرها 127 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 3-3 (الگوریتم فلوید برای کوتاهترین مسیرها) 134 3-3 برنامهسازی پویا و مسائل بهینه سازی 137 4-3 ضرب زنجیرهای ماتریس (Chained Matrix Multiplication) 139 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 6-3 (حداقل ضربها) 146 5-3 درختهای جستجوی دودویی بهینه 148 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 9-3 (درخت جستجوی دودویی بهینه) 157 6-3 مسئله فروشندة دورهگرد (Traveling Salesperson) 160 تحلیل پیچیدگی فضایی و زمانی تمامی حالات الگوریتم 11-3 (الگوریتم برنامهسازی پویا برای مسئلة فروشنده دورهگرد) 166 تمرینات 168 فصل 4 روش حریصانه (Greedy approach) مرور کلی 173 1-4 درختهای پوشای مینیمم (Minimum Spanning Trees) 177 1-1-4 الگوریتم پرایم 181 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 1-4 (الگوریتم پرایم) 185 2-1-4 الگوریتم کراسکال 187 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 2-4 (الگوریتم کراسکال) 190 3-1-4 مقایسه الگوریتم پرایم با الگوریتم کراسکال 192 4-1-4 بحث آخر 193 2-4 الگوریتم دایجسترا (Dijkstra) برای کوتاهترین مسیرها از مبدأ واحد 193 3-4 زمانبندی (Scheduling) 197 1-3-4 به حداقل رساندن کل زمان داخل سیستم بودن 198 2-3-4 زمانبندی براساس سررسیدها 201 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 4-4 ( زمانبندی براساس سررسیدها) 206 4-4 کُد هافمن (Huffman Code) 209 1-4-4 کُدهای پیشوندی (Prefix Codes) 210 2-4-4 الگوریتم هافمن 212 5-4 روش حریصانه در برابر روش برنامهسازی پویا: مسئله کوله پشتی 216 1-5-4 روش حریصانه برای مسئله کوله پشتی صفر – یک 217 2-5-4 یک روش حریصانه برای مسئله کوله پشتی کسری 219 3-5-4 یک روش برنامهسازی پویا برای مسئله کوله پشتی صفر – یک 220 4-5-4 یک اصلاحیه بر روی الگوریتم برنامهسازی پویای مسئله کوله پشتی صفر – یک 221 تمرینات 224 فصل 5 Backtracking 1-5 تکنیک Backtracking 232 2-5 مسئله –n وزیر 241 3-5 بکارگیری الگوریتم مونت کارلو برای تخمین کارایی یک الگوریتم backtracking 246 4-5 مسئله مجموع زیرمجموعهها (sum-of-subsets) 251 5-5 رنگآمیزی گراف (Graph Coloring) 257 6-5 مسئله دورهای هامیلتونی (Hamiltonian circuits) 261 7-5 مسئله کوله پشتی صفر – یک 266 1-7-5 یک الگوریتم Backtracking برای مسئله کوله پشتی صفر – یک 266 2-7-5 مقایسه الگوریتم برنامهسازی پویا و الگوریتم Backtracking برای مسئله کوله پشتی صفر – یک 277 تمرینات 277 فصل 6 انشعاب و کران (Branch-and-Bound) مرور کلی 283 1-6 نمایش انشعاب و کران بر روی مسئله کوله پشتی صفر – یک 286 1-1-6 جستجوی اول سطح با هرس انشعاب و کران 286 2-1-6 جستجوی Best-first با هرس انشعاب و کران 292 2-6 مسئله فروشنده دورهگرد 298 استنتاج قیاسی [Abductive Inference] (تشخیصی) 309 تمرینات 319 فصل 7 مقدمهای بر پیچیدگی – مسئله مرتبسازی 1-7 پیچیدگی محاسباتی (Computational Complexity) 324 2-7 مرتبسازی درجی و مرتبسازی انتخابی 326 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 1-7 برحسب تعداد مقایسات کلیدها (مرتبسازی درجی) 328 تحلیل پیچیدگی زمانی حالت میانگین الگوریتم 1-7 برای تحلیل تعداد مقایسات کلیدها (مرتبسازی درجی) 328 تحلیل بکارگیری فضای اضافی در الگوریتم 1-7 (مرتبسازی درجی) 330 3-7 کرانهای پائین الگوریتمهایی که حداکثر یک وارونگی در هر مقایسه را حذف میکنند 333 4-7 بازنگری Mergesort (مرتبسازی ادغامی) 336 تحلیل میزان مصرف فضای اضافی الگوریتم 2-7(Mergesort 2) 337 بهبودی Mergesort 338 تحلیل مصرف فضای اضافی الگوریتم 4-7 (Mergesort 4) 342 5-7 بازنگری Quicksort 343 بهبودها بر روی الگوریتم پایهای Quicksort 344 تحلیل میزان فضای خالی اضافی بکار رفته (Quicksort بهبود یافته) 344 6-7 Heapsort (مرتبسازی هرمی) 345 1-6-7 هرمها و روتینهای پایهای هرمها 345 تحلیل پیچیدگی زمانی بدترین حالت تعداد مقایسات کلیدهای الگوریتم 5-7 (Heapsort) 353 تحلیل makeheap 353 تحلیل removekeyها 355 ترکیب دو تحلیل 357 تحلیل میزان فضای اضافی الگوریتم 5-7 (Heapsort) 358 7-7 مقایسه Mergesort ، Quicksort و Heapsort 358 8-7 کرانهای پائین مربوط به مرتبسازی فقط با مقایسه کلیدها 359 1-8-7 درختهای تصمیمگیری مربوط به الگوریتمهای مرتبسازی 359 2-8-7 کرانهای پائین مربوط به بدترین حالت 363 کرانهای پائین برای رفتار حالت میانگین 366 9-7 مرتبسازی بوسیلة توزیع (مرتبسازی مبنایی [radix sort]) 371 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 6-7 (مرتبسازی مبنایی) 375 تحلیل مصرف فضای اضافی الگوریتم 6-7 (مرتبسازی مبنایی) 376 تمرینات 376 فصل 8 پیچیدگی محاسباتی بیشتر – مسئله جستجو مرور کلی 385 1-8 کرانهای پائین مربوط به جستجوی فقط با مقایسات کلیدها 386 1-1-8 کرانهای پائین مربوط به رفتار بدترین حالت 389 2-1-8 کرانهای پائین مربوط به رفتار حالت میانگین 391 تحلیل پیچیدگی زمانی حالت میانگین الگوریتم 1-2 (جستجوی دودویی، بازگشتی) 393 2-8 جستجوی درونیابی (Interpolation Search) 398 3-8 جستجو در درختها 402 1-3-8 درختهای جستجوی دودویی 403 2-3-8 B-Treeها 408 4-8 درهم سازی (Hashing) 411 5-8 مسئله انتخاب: مقدمهای بر استدلالهای مغرضانه (adversary arguments) 416 1-5-8 یافتن بزرگترین کلید 416 2-5-8 یافتن هر دوی کوچکترین و بزرگترین کلیدها 418 3-5-8 یافتن دومین بزرگترین کلید 427 4-5-8 یافتن kامین کوچکترین کلید 431 تحلیل پیچیدگی زمانی حالت میانگین الگوریتم 5-8 (انتخاب) 435 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 6-8 (انتخاب با استفاده از میانه) 440 5-5-8 یک الگوریتم احتمالی برای مسئله Selection 444 تحلیل پیچیدگی زمانی مقدار مورد انتظار الگوریتم 7-8 (انتخاب احتمالی) 447 تمرینات 449 فصل 9 پیچیدگی و بغرنجی محاسبه- مقدمهای بر نظریه NP 1-9 بغرنجی یا سختی (Intractablility) 456 2-9 بازنگری اندازة ورودی 458 3-9 سه دستهبندی کلی مسائل 463 1-3-9 مسائلی که برای آنها میتوان الگوریتمهایی با زمان چند جملهای پیدا کرد 463 2-3-9 مسائلی که بغرنج بودن آنها اثبات شده است 463 3-3-9 مسائلی که بعنوان بغرنج اثبات شدهاند اما برای آنها الگوریتمهایی با زمان چند جملهای هنوز پیدا نشده است 465 -9 نظریه NP 465 1-4-9 مجموعههای P و NP 468 2-4-9 مسائل NP-complete 474 وضعیت NP 483 مسائل مکمل 485 3-4-9 مسائل NP-Hard ، NP-Easy و NP-Equivalent 487 مسئله تصمیمگیری بسط یافتة فروشندة دورهگرد 490 5-9 مدیریت مسائل NP-Hard 492 1-5-9 یک الگوریتم تقریبی برای مسئله فروشندة دورهگرد 493 2-5-9 یک الگوریتم تقریبی برای مسئله Bin-Packing 498 تمرینات 504 فصل 10 الگوریتمهای نظریه اعداد (Number-theoretic) 1-10 مرور نظریه اعداد 508 1-1-10 اعداد مرکب و اول 508 2-1-10 بزرگترین مقسومعلیه مشترک 509 3-1-10 تبدیل به عوامل اول 513 4-1-10 کوچکترین مضرب مشترک (Least Common Multiple (LCM)) 515 2-10 محاسبة بزرگترین مقسومعلیه مشترک 516 1-2-10 الگوریتم اقلیدُسی 517 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 1-10 (الگوریتم اقلیدُسی) 519 2-2-10 مکملی بر الگوریتم اقلیدُسی 521 3-10 مروری بر ریاضیات پیمانهای (modular Arithmetic) 524 1-3-10 تئوری گروهها (Group theory) 524 2-3-10 همارز به پیمانة (Congruency Modulon)n 526 3-3-10 زیر گروهها (Subgroups) 533 4-10 حل معادلات خطی پیمانهای 539 5-10 محاسبة توانهای پیمانهای 546 6-10 یافتن اعداد اول بزرگ 549 1-6-10 جستجو بدنبال یک عدد اول بزرگ 549 2-6-10 بررسی اینکه آیا یک عدد اول است یا خیر 550 الگوریتم با زمان چند جملهای 551 صحت الگوریتم 558 پیچیدگی زمانی الگوریتم 564 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 5-10 (تعیین عدد اول بصورت چند جملهای) 567 نتایج حاصل از اثبات لِم 7-10 569 7-10 سیستم رمزنگاری کلید عمومی RSA 571 1-7-10 سیستمهای رمزگذاری کلید عمومی 571 2-7-10 سیستم رمزنگاری RSA 573 سیستم 573 نتیجه نهایی 575 تمرینات 576 فصل 11 مقدمهای بر الگوریتمهای موازی مرور کلی 581 1-11 معماریهای موازی 585 1-1-11 مکانیزم کنترلی 585 2-1-11 سازمان فضای آدرس 586 معماری فضای آدرس اشتراکی (Shared-Address-Space Arichitecture) 587 معماری ارسال پیغام (Message-Passing Architecture) 588 3-11 شبکههای اتصال داخلی (interconnection Networks) 589 شبکههای اتصال داخلی پویا (Dynamic interconnection Networks) 591 2-11 مدل PRAM 593 1-2-11 طراحی الگوریتمهایی برای مدل CREW PRAm 59 یافتن بزرگترین کلید در داخل یک آرایه 597 کاربرد برنامهنویسی پویا 601 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 3-11 605 2-2-11 طراحی الگوریتمهایی برای مدل CRCW PRAM 606 تمرینات 609 فصل 12 مروری بر عملیات ریاضی 1-A علائم 613 2-A توابع 616 3-A استقراء ریاضی (Mathematical Induction) 617 4-A تئوریها و لِمها 624 5-A لگاریتمها (logarithms) 625 1-5-A تعریف و خاصیتهای لگاریتمها 626 برخی از ویژگیها (در تمامی موارد، a>1 ، b>1 ، x>0 و y>0 میباشد) 627 2-5-A لگاریتم طبیعی (Natural logarithm) 628 6-A مجموعهها 630 7-A جایگشتها و ترکیبها 632 8-A احتمالات 635 1-8-A تصادفی بودن (Randomness) 642 2-8-A امید ریاضی (Expected Value) 647 تمرینات 649 فصل 13 حل معادلات بازگشتی و کاربرد آنها در تحلیل الگوریتمهای بازگشتی 1-B حل بازگشتها با استفاده از استقراء 655 2-B حل دنبالههای بازگشتی با استفاده از معادلة مشخصه 660 1-2-B دنبالههای بازگشتی خطی همگن (Homogeneous Linear Recurrences) 660 2-2-B دنبالههای بازگشتی خطی ناهمگن 669 3-2-B تغییر متغیرها (تبدیلات دامنه) 675 3-B حل دنبالههای بازگشتی بوسیلة جایگزینی 678 4-B بسط نتایج برای n ، بعنوان توانی از یک ثابت مثبت b ، تا n بطور کلی 680 5-B اثبات تئوریها 688 تمرینات 690 فصل 14 ساختمان دادههای مجموعههای گسسته(Disjoint Sets) ساختمان دادة مجموعة گسسته 702 ساختمان دادة مجموعة گسستة II 705 ساختمان دادة مجموعة گسستة III 707
بهترین کتاب طراحی الگوریتم کدومه ؟من 3 کتاب مد نظر دارم.زبان برنامه نویسی من C و C++ هست
.
1:طراحی الگوریتم ها با استفاده از شبکه کد C++
نویسنده ش ریچارد نئوپولیتن هست و425 صفحه داره و شامل مباحث زیر میشه
-تحلیل و بررسی کارایی
2-تقسیم و غلبه
3-برنامه نویسی پویا
4-روش حریص
5-بازگشت به عقب
6-شاخه و حد
7-معماری ها و الگوریتم های موازی
/////////////////////////////////////////////////////////////////////////////////////////////////////////
2: الگوریتم و فلوچارت
نویسنده بهرام غلامی (http://www.fardabook.com/catalogsearch/advanced/result/?author=%D8%A8%D9%87%D8%B1%D8%A7%D9%85+%D8%BA%D9%8 4%D8%A7%D9%85%DB%8C)علیرضا جباریه (http://www.fardabook.com/catalogsearch/advanced/result/?author=%D8%B9%D9%84%DB%8C%D8%B1%D8%B6%D8%A7+%D8%A C%D8%A8%D8%A7%D8%B1%DB%8C%D9%87)
و تعداد صفحه 225 و انتشارات موسسه فرهنگی هنری دیباگران تهران.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
3:اصول طراحی الگوریتمها
نویسنده ریچارد نئوپولیتن و انتشارات پارسه و مترجم سعید هراتیان و مهرداد توانا و 708 صفحه داره و فهرست مطالبش در زیر اوردم
فهرست مطالب:
فصل 1 الگوریتمها ، کارائی ، آنالیز و مرتبه 1-1 الگوریتمها 18 2-1 اهمیت توسعة الگوریتمهای کارآمد 26 1-2-1 جستجوی ترتیبی در مقابل جستجوی دودوئی 27 2-2-1 سری فیبوناچی 30 3-1 تحلیل الگوریتمها 36 1-3-1 تحلیل پیچیدگی (Complexity Analysis) 36 پیچیدگی زمانی تمامی – حالات برای الگوریتم 2-1 (مجموع اعضای آرایه) 39 تحلیل پیچیدگی زمانی تمامی – حالات در الگوریتم 4-1 (ضرب ماتریس) 39 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 1-1 (جستجوی ترتیبی) 40 تحلیل پیچیدگی زمانی حالت میانگین الگوریتم 1-1 (جستجوی ترتیبی) 41 اتحلیل پیچیدگی زمانی بهترین – حالت الگوریتم 1-1 (جستجوی ترتیبی) 43 2-3-1 اعمال تئوری 44 3-3-1 تحلیل صحت الگوریتم (Correctness) 46 1-4-1 مقدمهای کلی در مورد مرتبه (Order) 47 2-4-1 مقدمهای دقیق در مورد مرتبه 50 3-4-1 بکارگیری یک حد برای تعیین مرتبه 62 5-1 رئوس مطالب این کتاب 64 تمرینات 65 فصل 2 تقسیم - و - حل 1-2 جستجوی دودویی (Binary Search) 72 تحلیل پیچیدگی زمانی برترین حالت الگوریتم 1-2 76 2-2 مرتبسازی ادغامی (MergeSort) 77 تحلیل پیچیدگی زمانی برترین حالت الگوریتم 3-2 (ادغام) 81 تحلیل پیچیدگی زمانی برترین حالت الگوریتم 2-2 (مرتبسازی ادغامی) 81 3-2 روش تقسیم – و –حل 84 4-2 مرتبسازی سریع یا QuickSort (مرتبسازی معاوضهای تفکیکی) 85 تحلیل پیچیدگی زمان تمامی حالات الگوریتم 7-2 (Partition) 88 تحلیل پیچیدگی زمانی برترین حالت الگوریتم 6-2 (QuickSort) 89 تحلیل پیچیدگی زمان حالت میانگین الگوریتم 6-2 (QuickSort) 91 5-2 الگوریتم ضرب ماتریس استراسن (Stressen) 93 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 8-2 از نظر تحلیل تعداد ضربها (استراسن) 96 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 8-2 از نظر تحلیل تعداد جمعها / تفریقها (استراسن) 97 6-2 عملیات ریاضی بر روی اعداد بزرگ 99 1-6-2 نمایش اعداد صحیح بزرگ: عملیات جمع و سایر عملیات با زمان خطی 99 2-6-2 ضرب اعداد بزرگ 100 تحلیل پیچیدگی زمانی برترین حالت الگوریتم 9-2 (ضرب عدد صحیح بزرگ) 102 تحلیل پیچیدگی زمانی برترین حالت الگوریتم 10-2 (نگارش دوم ضرب اعداد بزرگ) 104 7-2 تعیین آستانهها (Thresholds) 106 8-2 چه زمانی نباید از تکنیک تقسیم – و – حل استفاده کرد 111 تمرینات 112 فصل 3 برنامه سازی پویا(Dynamic Programming) مرور کلی 121 1-3 ضریب دو جملهای (Binomial Coefficient) 122 2-3 الگوریتم فلوید برای یافتن کوچکترین مسیرها 127 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 3-3 (الگوریتم فلوید برای کوتاهترین مسیرها) 134 3-3 برنامهسازی پویا و مسائل بهینه سازی 137 4-3 ضرب زنجیرهای ماتریس (Chained Matrix Multiplication) 139 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 6-3 (حداقل ضربها) 146 5-3 درختهای جستجوی دودویی بهینه 148 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 9-3 (درخت جستجوی دودویی بهینه) 157 6-3 مسئله فروشندة دورهگرد (Traveling Salesperson) 160 تحلیل پیچیدگی فضایی و زمانی تمامی حالات الگوریتم 11-3 (الگوریتم برنامهسازی پویا برای مسئلة فروشنده دورهگرد) 166 تمرینات 168 فصل 4 روش حریصانه (Greedy approach) مرور کلی 173 1-4 درختهای پوشای مینیمم (Minimum Spanning Trees) 177 1-1-4 الگوریتم پرایم 181 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 1-4 (الگوریتم پرایم) 185 2-1-4 الگوریتم کراسکال 187 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 2-4 (الگوریتم کراسکال) 190 3-1-4 مقایسه الگوریتم پرایم با الگوریتم کراسکال 192 4-1-4 بحث آخر 193 2-4 الگوریتم دایجسترا (Dijkstra) برای کوتاهترین مسیرها از مبدأ واحد 193 3-4 زمانبندی (Scheduling) 197 1-3-4 به حداقل رساندن کل زمان داخل سیستم بودن 198 2-3-4 زمانبندی براساس سررسیدها 201 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 4-4 ( زمانبندی براساس سررسیدها) 206 4-4 کُد هافمن (Huffman Code) 209 1-4-4 کُدهای پیشوندی (Prefix Codes) 210 2-4-4 الگوریتم هافمن 212 5-4 روش حریصانه در برابر روش برنامهسازی پویا: مسئله کوله پشتی 216 1-5-4 روش حریصانه برای مسئله کوله پشتی صفر – یک 217 2-5-4 یک روش حریصانه برای مسئله کوله پشتی کسری 219 3-5-4 یک روش برنامهسازی پویا برای مسئله کوله پشتی صفر – یک 220 4-5-4 یک اصلاحیه بر روی الگوریتم برنامهسازی پویای مسئله کوله پشتی صفر – یک 221 تمرینات 224 فصل 5 Backtracking 1-5 تکنیک Backtracking 232 2-5 مسئله –n وزیر 241 3-5 بکارگیری الگوریتم مونت کارلو برای تخمین کارایی یک الگوریتم backtracking 246 4-5 مسئله مجموع زیرمجموعهها (sum-of-subsets) 251 5-5 رنگآمیزی گراف (Graph Coloring) 257 6-5 مسئله دورهای هامیلتونی (Hamiltonian circuits) 261 7-5 مسئله کوله پشتی صفر – یک 266 1-7-5 یک الگوریتم Backtracking برای مسئله کوله پشتی صفر – یک 266 2-7-5 مقایسه الگوریتم برنامهسازی پویا و الگوریتم Backtracking برای مسئله کوله پشتی صفر – یک 277 تمرینات 277 فصل 6 انشعاب و کران (Branch-and-Bound) مرور کلی 283 1-6 نمایش انشعاب و کران بر روی مسئله کوله پشتی صفر – یک 286 1-1-6 جستجوی اول سطح با هرس انشعاب و کران 286 2-1-6 جستجوی Best-first با هرس انشعاب و کران 292 2-6 مسئله فروشنده دورهگرد 298 استنتاج قیاسی [Abductive Inference] (تشخیصی) 309 تمرینات 319 فصل 7 مقدمهای بر پیچیدگی – مسئله مرتبسازی 1-7 پیچیدگی محاسباتی (Computational Complexity) 324 2-7 مرتبسازی درجی و مرتبسازی انتخابی 326 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 1-7 برحسب تعداد مقایسات کلیدها (مرتبسازی درجی) 328 تحلیل پیچیدگی زمانی حالت میانگین الگوریتم 1-7 برای تحلیل تعداد مقایسات کلیدها (مرتبسازی درجی) 328 تحلیل بکارگیری فضای اضافی در الگوریتم 1-7 (مرتبسازی درجی) 330 3-7 کرانهای پائین الگوریتمهایی که حداکثر یک وارونگی در هر مقایسه را حذف میکنند 333 4-7 بازنگری Mergesort (مرتبسازی ادغامی) 336 تحلیل میزان مصرف فضای اضافی الگوریتم 2-7(Mergesort 2) 337 بهبودی Mergesort 338 تحلیل مصرف فضای اضافی الگوریتم 4-7 (Mergesort 4) 342 5-7 بازنگری Quicksort 343 بهبودها بر روی الگوریتم پایهای Quicksort 344 تحلیل میزان فضای خالی اضافی بکار رفته (Quicksort بهبود یافته) 344 6-7 Heapsort (مرتبسازی هرمی) 345 1-6-7 هرمها و روتینهای پایهای هرمها 345 تحلیل پیچیدگی زمانی بدترین حالت تعداد مقایسات کلیدهای الگوریتم 5-7 (Heapsort) 353 تحلیل makeheap 353 تحلیل removekeyها 355 ترکیب دو تحلیل 357 تحلیل میزان فضای اضافی الگوریتم 5-7 (Heapsort) 358 7-7 مقایسه Mergesort ، Quicksort و Heapsort 358 8-7 کرانهای پائین مربوط به مرتبسازی فقط با مقایسه کلیدها 359 1-8-7 درختهای تصمیمگیری مربوط به الگوریتمهای مرتبسازی 359 2-8-7 کرانهای پائین مربوط به بدترین حالت 363 کرانهای پائین برای رفتار حالت میانگین 366 9-7 مرتبسازی بوسیلة توزیع (مرتبسازی مبنایی [radix sort]) 371 تحلیل پیچیدگی زمانی تمامی حالات الگوریتم 6-7 (مرتبسازی مبنایی) 375 تحلیل مصرف فضای اضافی الگوریتم 6-7 (مرتبسازی مبنایی) 376 تمرینات 376 فصل 8 پیچیدگی محاسباتی بیشتر – مسئله جستجو مرور کلی 385 1-8 کرانهای پائین مربوط به جستجوی فقط با مقایسات کلیدها 386 1-1-8 کرانهای پائین مربوط به رفتار بدترین حالت 389 2-1-8 کرانهای پائین مربوط به رفتار حالت میانگین 391 تحلیل پیچیدگی زمانی حالت میانگین الگوریتم 1-2 (جستجوی دودویی، بازگشتی) 393 2-8 جستجوی درونیابی (Interpolation Search) 398 3-8 جستجو در درختها 402 1-3-8 درختهای جستجوی دودویی 403 2-3-8 B-Treeها 408 4-8 درهم سازی (Hashing) 411 5-8 مسئله انتخاب: مقدمهای بر استدلالهای مغرضانه (adversary arguments) 416 1-5-8 یافتن بزرگترین کلید 416 2-5-8 یافتن هر دوی کوچکترین و بزرگترین کلیدها 418 3-5-8 یافتن دومین بزرگترین کلید 427 4-5-8 یافتن kامین کوچکترین کلید 431 تحلیل پیچیدگی زمانی حالت میانگین الگوریتم 5-8 (انتخاب) 435 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 6-8 (انتخاب با استفاده از میانه) 440 5-5-8 یک الگوریتم احتمالی برای مسئله Selection 444 تحلیل پیچیدگی زمانی مقدار مورد انتظار الگوریتم 7-8 (انتخاب احتمالی) 447 تمرینات 449 فصل 9 پیچیدگی و بغرنجی محاسبه- مقدمهای بر نظریه NP 1-9 بغرنجی یا سختی (Intractablility) 456 2-9 بازنگری اندازة ورودی 458 3-9 سه دستهبندی کلی مسائل 463 1-3-9 مسائلی که برای آنها میتوان الگوریتمهایی با زمان چند جملهای پیدا کرد 463 2-3-9 مسائلی که بغرنج بودن آنها اثبات شده است 463 3-3-9 مسائلی که بعنوان بغرنج اثبات شدهاند اما برای آنها الگوریتمهایی با زمان چند جملهای هنوز پیدا نشده است 465 -9 نظریه NP 465 1-4-9 مجموعههای P و NP 468 2-4-9 مسائل NP-complete 474 وضعیت NP 483 مسائل مکمل 485 3-4-9 مسائل NP-Hard ، NP-Easy و NP-Equivalent 487 مسئله تصمیمگیری بسط یافتة فروشندة دورهگرد 490 5-9 مدیریت مسائل NP-Hard 492 1-5-9 یک الگوریتم تقریبی برای مسئله فروشندة دورهگرد 493 2-5-9 یک الگوریتم تقریبی برای مسئله Bin-Packing 498 تمرینات 504 فصل 10 الگوریتمهای نظریه اعداد (Number-theoretic) 1-10 مرور نظریه اعداد 508 1-1-10 اعداد مرکب و اول 508 2-1-10 بزرگترین مقسومعلیه مشترک 509 3-1-10 تبدیل به عوامل اول 513 4-1-10 کوچکترین مضرب مشترک (Least Common Multiple (LCM)) 515 2-10 محاسبة بزرگترین مقسومعلیه مشترک 516 1-2-10 الگوریتم اقلیدُسی 517 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 1-10 (الگوریتم اقلیدُسی) 519 2-2-10 مکملی بر الگوریتم اقلیدُسی 521 3-10 مروری بر ریاضیات پیمانهای (modular Arithmetic) 524 1-3-10 تئوری گروهها (Group theory) 524 2-3-10 همارز به پیمانة (Congruency Modulon)n 526 3-3-10 زیر گروهها (Subgroups) 533 4-10 حل معادلات خطی پیمانهای 539 5-10 محاسبة توانهای پیمانهای 546 6-10 یافتن اعداد اول بزرگ 549 1-6-10 جستجو بدنبال یک عدد اول بزرگ 549 2-6-10 بررسی اینکه آیا یک عدد اول است یا خیر 550 الگوریتم با زمان چند جملهای 551 صحت الگوریتم 558 پیچیدگی زمانی الگوریتم 564 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 5-10 (تعیین عدد اول بصورت چند جملهای) 567 نتایج حاصل از اثبات لِم 7-10 569 7-10 سیستم رمزنگاری کلید عمومی RSA 571 1-7-10 سیستمهای رمزگذاری کلید عمومی 571 2-7-10 سیستم رمزنگاری RSA 573 سیستم 573 نتیجه نهایی 575 تمرینات 576 فصل 11 مقدمهای بر الگوریتمهای موازی مرور کلی 581 1-11 معماریهای موازی 585 1-1-11 مکانیزم کنترلی 585 2-1-11 سازمان فضای آدرس 586 معماری فضای آدرس اشتراکی (Shared-Address-Space Arichitecture) 587 معماری ارسال پیغام (Message-Passing Architecture) 588 3-11 شبکههای اتصال داخلی (interconnection Networks) 589 شبکههای اتصال داخلی پویا (Dynamic interconnection Networks) 591 2-11 مدل PRAM 593 1-2-11 طراحی الگوریتمهایی برای مدل CREW PRAm 59 یافتن بزرگترین کلید در داخل یک آرایه 597 کاربرد برنامهنویسی پویا 601 تحلیل پیچیدگی زمانی بدترین حالت الگوریتم 3-11 605 2-2-11 طراحی الگوریتمهایی برای مدل CRCW PRAM 606 تمرینات 609 فصل 12 مروری بر عملیات ریاضی 1-A علائم 613 2-A توابع 616 3-A استقراء ریاضی (Mathematical Induction) 617 4-A تئوریها و لِمها 624 5-A لگاریتمها (logarithms) 625 1-5-A تعریف و خاصیتهای لگاریتمها 626 برخی از ویژگیها (در تمامی موارد، a>1 ، b>1 ، x>0 و y>0 میباشد) 627 2-5-A لگاریتم طبیعی (Natural logarithm) 628 6-A مجموعهها 630 7-A جایگشتها و ترکیبها 632 8-A احتمالات 635 1-8-A تصادفی بودن (Randomness) 642 2-8-A امید ریاضی (Expected Value) 647 تمرینات 649 فصل 13 حل معادلات بازگشتی و کاربرد آنها در تحلیل الگوریتمهای بازگشتی 1-B حل بازگشتها با استفاده از استقراء 655 2-B حل دنبالههای بازگشتی با استفاده از معادلة مشخصه 660 1-2-B دنبالههای بازگشتی خطی همگن (Homogeneous Linear Recurrences) 660 2-2-B دنبالههای بازگشتی خطی ناهمگن 669 3-2-B تغییر متغیرها (تبدیلات دامنه) 675 3-B حل دنبالههای بازگشتی بوسیلة جایگزینی 678 4-B بسط نتایج برای n ، بعنوان توانی از یک ثابت مثبت b ، تا n بطور کلی 680 5-B اثبات تئوریها 688 تمرینات 690 فصل 14 ساختمان دادههای مجموعههای گسسته(Disjoint Sets) ساختمان دادة مجموعة گسسته 702 ساختمان دادة مجموعة گسستة II 705 ساختمان دادة مجموعة گسستة III 707