برای حل مسئله ‌است. طراحی الگوریتم کاربردی را می‌نامند. طراحی الگوریتم در بسیاری از ، شناسایی و گنجانیده شده‌است، مانند و . الگوریتم، تکنیک‌های طراحی و اجرای طرح‌های الگوریتم هستند. در این روزها از طراحی الگوریتم می‌توان در فرایندهای و مسیریابی نیز استفاده نمود.
 هم اکنون در طراحی الگوریتم‌ها به عنوان درسی در ( و ) و تدریس می‌شود.
در طراحی الگوریتم‌ها مباحثی همچون ، بازگشتی، روش ، روش حریصانه، روش ، ، نظریه P و NP تدریس می‌شود. رایانه‌های بزرگ مانند زبان ALGOL (برای زبان الگوریتمی)، زبان ، زبان COBOL، زبان PL/I، زبان SAIL و SNOBOL ابزار محاسبات برای به اجرا درآوردن یک طراحی الگوریتم است؛ اما یک طراحی الگوریتم (a/d) یک زبان نیست، یک a/d می‌تواند یک روش باشد، به‌طور مثال مجموعه‌ای از معادلات. یک سری از فرایندهای انجام‌شده توسط دست، قطعه از تجهیزات یا فرایند و پردازنده است. یکی از مهم‌ترین جنبه‌های طراحی الگوریتم، ایجاد یک الگوریتم است که دارای یک زمان اجرای کارآمد باشد، که به عنوان او بزرگ (big O) شناخته شده‌است.
 کارایی، تحلیل و مرتبه الگوریتم‌ها
 نوشتن الگوریتم به دو ایراد دارد:
 
 تعیین مقدار میزان کارایی یک الگوریتم در حل مسئله با تحلیل الگوریتم انجام می‌شود.
 زمانی که یک الگوریتم انجام می‌شود با تعداد ورودی‌های الگوریتم افزایش می‌یابد.
 تحلیل پیچیدگی زمانی یک الگوریتم، تعیین تعداد دفعاتی است که عمل اصلی به ازای هر مقدار از ورودی انجام می‌شود.
 T(n) را پیچیدگی زمانی الگوریتم در حالت معمول می‌گویند.
 W(n) را تحلیل پیچیدگی زمانی در بدترین حالت می‌نامند.
 A(n) را پیچیدگی زمانی در حالت میانگین می‌گویند.
 عمل اصلی:زمان نوشتن الگوریتم اندازهٔ را معین سپس را معلوم می‌کنیم که تعداد دفعاتی که این دستورات اجرا می‌شود کل کار الگوریتم را نشان می‌دهد.
 تحلیل پیچیدگی زمانی برای معمول برای الگوریتم (جمع کردن عناصر آرایه)
 عمل اصلی: افزودن یک عنصر از آرایه به sum.
 اندازه ورودی: n، تعداد عناصر آرایه.
 عمل اصلی همیشه n بار انجام می‌شود یعنی برابر است با T(n) = n
تحلیل پیچیدگی زمانی برای حالت معمول برای الگوریتم (مرتب‌سازی تعویضی)
 عمل اصلی: مقایسه S [j] با S[i].
 اندازه ورودی: تعداد عناصری که باید مرتب شوند.
 پیچیدگی زمانی در بدترین حالت برای الگوریتم (جستجوی ترتیبی)
 عمل اصلی: مقایسه یک عنصر آرایه با x.
 اندازه ورودی: n، تعداد عناصر موجود در آرایه.
 تحلیل پیچیدگی زمانی در بهترین حالت برای الگوریتم (جستجوی ترتیبی)
 عمل اصلی: مقایسه یک عنصر آرایه با x.
 اندازه ورودی: n ، تعداد عناصر آرایه.
 توضیح: در اولین بار عنصر مورد نظر پیدا شود.
 الگوریتم‌هایی با پیچیدگی زمانی از قبیل n و 100n را الگوریتم‌های زمانی خطی می‌گویند.
 مجموعه کامل توابع پیچیدگی را که با توابع درجه دوم محض قابل دسته‌بندی باشند، n²) (θ می‌گویند.
 برای یک تابع پیچیدگی مفروض ƒ(n),O (ƒ (n) "O بزرگ» مجموعه‌ای از توابع پیچیدگی g (n) است که برای آن‌ها یک ثابت حقیقی مثبت c و یک غیر منفی N وجود دارد به قسمی که به ازای همهٔ N =<n داریم: 
g (n)>= c × ƒ (n) 
برای یک تابع پیچیدگی مفروض ƒ(n)، (Ω (ƒ(n)مجموعه‌ای از توابع پیچیدگی g (n) است که برای آن‌ها یک عدد ثابت حقیقی مثبت c و یک عدد صحیح غیر منفی N وجود دارد به قسمی که به ازای همهٔ N =<n داریم: 
g (n) =<c × ƒ (n) 
برای یک تابع پیچیدگی مفروض ƒ(n)، داریم: θ (ƒ(n)) = O (ƒ(n)) ∩ Ω (ƒ(n)) 
یعنی θ(ƒ(n)) مجموعه‌ای از توابع پیچیدگی g (n) است که برای آن‌ها ثابت‌های حقیقی مثبت c وd و عدد صحیح غیر منفی N وجود دارد به قسمی که: 
c × ƒ (n) <= d × ƒ(n) 
برای یک تابع پیچیدگی ƒ(n) مفروض، (o(ƒ(n) ”o کوچک” عبارت ازمجموعه کلیه توابع پیچیدگیg (n) است که این شرط را برآورده می‌سازند: به ازای هرثابت حقیقی مثبت c، یک عدد صحیح غیر منفی N وجود دارد به قسمتی که به ازای همهٔ N =<n داریم: 
g (n) =<c × ƒ (n) 
روش تقسیم و حل 
روش تقسیم و حل یک روش بالا به پایین است. 
حل یک نمونه سطح بالای مسئله با رفتن به جزء و بدست آوردن حل نمونه‌های کوچکتر حاصل می‌شود. 
هنگام پی ریزی یک الگوریتم بازگشتی، باید: 
۱- راهی برای به دست آوردن حل یک نمونه از روی حل یک نمونه از روی حل یک یا چند نمونه کوچک‌تر طراحی کنیم. 
۲- شرط (شرایط) نهایی نزدیک شدن به نمونه (های) کوچک‌تر را تعیین کنیم. 
۳- حل را در حالت شرط (شرایط) نهایی تعیین کنیم. 
انواع روش‌های :
 ادغام یک فرایند مرتبط با مرتب‌سازی است. 
ادغام دوطرفه به معنای ترکیب دو آرایه مرتب شده در یک آرایهٔ مرتب است. شامل مراحل زیر می‌شود: 
۱- تقسیم آرایه به دو زیر آرایه، هر یک با n/2 عنصر. 
۲- حل هر زیر آرایه با مرتب‌سازی آن. 
۳- ترکیب حل‌های زیر آرایه‌ها از طریق ادغام آن‌ها در یک آرایه مرتب. 
راهبرد طراحی تقسیم و حل شامل مراحل زیر است: 
۱- تقسیم نمونه‌ای از یک مسئله به یک یا چند نمونه کوچکتر. 
۲- حل هر نمونه کوچکتر. اگر نمونه‌های کوچک تربه قدر کافی کوچک نبودند، برای این منظور از بازگشت استفاده کنید. 
۳- در صورت نیاز، حل نمونه‌های کوچک‌تر را ترکیب کنید تا حل نمونه اولیه به دست آید.
 در مرتب‌سازی سریع، ترتیب آن‌ها از چگونگی افراز آرایه‌ها ناشی می‌شود.
 همه عناصر کوچک‌تر از عنصر محوری در طرف چپ آن و همه عناصر بزرگ‌تر، در طرف راست آن واقع هستند.
 مرتب‌سازی سریع، به‌طور بازگشتی فراخوانی می‌شود تا هر یک از دو آرایه را مرتب کند، آن‌ها نیز افراز می‌شوند و این روال ادامه می‌یابد تا به آرایه‌ای با یک عنصر برسیم. چنین آرایه‌ای ذاتاً مرتب است.
{"title": "طراحی الگوریتم", "link": "https://fa.wikipedia.org//w/index.php?title=%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85&oldid=33518915", "language": "fa"}