دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: آموزشی ویرایش: 1 نویسندگان: George T. Heineman, Gary Pollice, Stanley Selkow سری: In a Nutshell(O'Reilly) ISBN (شابک) : 9780596516246, 059651624X ناشر: O'Reilly Media سال نشر: 2008 تعداد صفحات: 344 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 12 مگابایت
در صورت تبدیل فایل کتاب Algorithms in a Nutshell به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب الگوریتم ها به صورت خلاصه نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
ایجاد سیستم های نرم افزاری بیش از نوشتن یک برنامه ساده است. این نیاز به خلاقیت و برتری فنی دارد. برتری فنی شامل توانایی قوی و کارآمد کردن برنامهها است. الگوریتم های کارآمد در قلب همه برنامه ها به جز بی اهمیت ترین برنامه ها قرار دارند. با این حال، برنامه نویسان به ندرت به الگوریتم های موجود در برنامه های خود فکر می کنند تا زمانی که با مشکل مواجه شوند. بسیاری از برنامه نویسان پیشینه ای در تحلیل و طراحی الگوریتم ندارند و اگر هم داشته باشند، برای یافتن الگوریتم مناسب برای نیازهای خود وقت نمی گذارند. الگوریتم ها به طور خلاصه به برنامه نویسان کمک می کند تا الگوریتم های مناسب را برای نیازهای خاص خود انتخاب، تجزیه و تحلیل و پیاده سازی کنند. به اندازه کافی ریاضیات را فراهم می کند تا خواننده عملکرد الگوریتم را درک و تجزیه و تحلیل کند. الگوریتمهای کتاب بر اساس نوع مشکلاتی است که به آنها میپردازند. هر الگوریتم به سبک یک الگوی طراحی ارائه می شود - یک رویکرد، یا طرحی برای چگونگی حل مسئله همراه با اطلاعات مورد نیاز برای درک اینکه چرا الگوریتم مناسب است، چگونه می توان تعیین کرد که چرا الگوریتم درست است، و پیاده سازی نکات. این یک فایده بزرگ برای خواننده است. همانطور که الگوهای طراحی برای طراحی شی گرا به توسعه دهندگان امکان می دهد از یک زبان مشترک برای توصیف طرح های خود استفاده کنند، ما معتقدیم که ارائه یک زبان الگو برای الگوریتم ها می تواند مزایای ارتباطی مشابهی را فعال کند.
Creating software systems involves more than simply writing a program. It requires creativity and technical excellence. Technical excellence includes the ability to make programs robust and efficient. Efficient algorithms are at the heart of all but the most trivial programs. Programmers, however, seldom think about the algorithms in their programs until they encounter problems. Many programmers do not have a background in algorithm analysis and design and if they do, they don't take the time to find the right algorithm for their needs. Algorithms in a Nutshell helps programmers select, analyze, and implement the right algorithms for their particular needs. It provides just enough mathematics to let the reader understand and analyze algorithm performance. The algorithms in the book are based upon the type of problems they address. Each algorithm is presented in the style of a design pattern - an approach, or plan for how to solve the problem accompanied by the information needed to understand why the algorithm is appropriate, how one might determine why the algorithm is the right one, and implementation tips. This is a major benefit to the reader. Just as design patterns for object-oriented design enable developers to use a common language to describe their designs, we believe that providing a pattern language for algorithms can enable similar communication benefits.
I......Page 1
Algorithms Matter......Page 2
Understand the Problem......Page 3
Experiment if Necessary......Page 4
Side Story......Page 8
The Moral of the Story......Page 9
References......Page 10
Size of a Problem Instance......Page 11
Rate of Growth of Functions......Page 13
Analysis in the Best, Average, and Worst Cases......Page 17
Performance Families......Page 21
Mix of Operations......Page 34
Benchmark Operations......Page 35
References......Page 37
Patterns: A Communication Language......Page 38
Algorithm Pattern Format......Page 40
Pseudocode Pattern Format......Page 41
Design Format......Page 42
Empirical Evaluation Format......Page 43
Domains and Algorithms......Page 45
Floating-Point Computations......Page 46
Manual Memory Allocation......Page 49
Choosing a Programming Language......Page 52
References......Page 53
II......Page 54
Overview......Page 55
Insertion Sort......Page 61
Median Sort......Page 65
Quicksort......Page 76
Selection Sort......Page 83
Heap Sort......Page 84
Counting Sort......Page 89
Bucket Sort......Page 91
Criteria for Choosing a Sorting Algorithm......Page 97
References......Page 101
Overview......Page 103
Sequential Search......Page 104
Binary Search......Page 110
Hash-based Search......Page 114
Binary Tree Search......Page 127
Overview......Page 134
Depth-First Search......Page 140
Breadth-First Search......Page 147
Single-Source Shortest Path......Page 151
All Pairs Shortest Path......Page 163
Minimum Spanning Tree Algorithms......Page 167
References......Page 169
Overview......Page 170
Depth-First Search......Page 179
Breadth-First Search......Page 188
A*Search......Page 192
Comparison......Page 202
Minimax......Page 205
NegMax......Page 211
AlphaBeta......Page 215
References......Page 222
Overview......Page 224
Maximum Flow......Page 227
Bipartite Matching......Page 237
Reflections on Augmenting Paths......Page 240
Transshipment......Page 244
Transportation......Page 245
Assignment......Page 246
Linear Programming......Page 247
References......Page 248
Overview......Page 249
Convex Hull Scan......Page 258
LineSweep......Page 266
Nearest Neighbor Queries......Page 278
Range Queries......Page 290
References......Page 296
III......Page 297
Variations on a Theme......Page 298
Offline Algorithms......Page 299
Randomized Algorithms......Page 300
Algorithms That Can Be Wrong, but with Diminishing Probability......Page 307
References......Page 310
Principle: Know Your Data......Page 311
Principle: Decompose the Problem into Smaller Problems......Page 312
Principle: Choose the Right Data Structure......Page 313
Principle: Add Storage to Increase Performance......Page 314
Principle: If No Solution Is Evident, Reduce Your Problem to Another Problem That Has a Solution......Page 315
Principle: Writing Algorithms Is Hard—Testing Algorithms Is Harder......Page 316
IV......Page 318
Statistical Foundation......Page 319
Hardware......Page 320
Reporting......Page 329
Precision......Page 330
About the Authors......Page 332