Upload
faradars
View
37
Download
4
Embed Size (px)
Citation preview
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
حام دهیم با بیان ترتیب کارهایی که باید ان. شودالگوریتم به روش خاص حل هر دسته از مسایل گفته می
تم بایود بوه الگووری. تعیین نظم و ترتیب دستورات و توجه به اولویت اجرای دستورات را الگوریتم گووییم
.دکند، سازماندهی شده باشای از مسایل را به دقت تبیین میای از اعمال که حل دستهصورت رشته
.منحصر بفرد نیستالگوریتم حل یک مسئله لزوماً
الگوریتم چیست؟آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
:برای ارزیابی کارایی یک الگوریتم، دو مسئله دارای اهمیت است
زمان اجرای الگوریتم •
الگوریتممورد نیاز حافظه •
همانند عواملی که در هنگام خرید به آن توجه داریم و بعد از جمع بندی کلی خرید خود را انجام می
:مانند. دهیم
...قیمت، کیفیت، سلیقه، آبروداری و
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
. اهمیت بیشتری داردزمان اجرا عامل زمان اجرا و حافظه، دو از بین
:اجرا به عوامل متعددی بستگی دارد از جملهزمان
مثالً پردازنده : افزارسخت •
.سریعتر هستندPASCALمعموالً از مشابه Cهای نوشته شده به زبان مثالً برنامه: کامپایلر•
شتر مثالً در مرتب سازی یک آرایه، هر چه تعداد عناصر آرایه بیشتر باشد، زمان اجرا بی: ورودیاندازه •
.است
اشد سازی صعودی یک آرایه، اگر آرایه از قبل مرتب بمثال در مرتببرای : یا ترتیب ورودیترکیب •
.معموالً بهترین حالت است
جود داشته های مختلف وهای مختلف با زمانممکن است برای یک مسئله الگوریتم: الگوریتمپیچیدگی •
.ستشان، یکسان نیهای مختلفی وجود دارد که پیچیدگیسازی، الگوریتممثالً برای مرتب. باشد
فرادرس
FaraDars.org
:را می توان بررسی کردها سه حالت الگوریتمبررسی عملکرد در
(Best case)حالت بهترین -الف
(Average case)متوسط حالت -ب
(Worst case)حالت بدترین -ج
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
بورای 𝑛0 ،f(n)و Cباشد اگر و فقط اگر به ازای مقادیر ثابت و مثبتوی از میf(n)=O(g(n)): 1تعریف
:یعنی. باشدCg(n)، کمتر یا مساوی 𝑛0تمامی مقادیر بزرگتر یا مساوی
𝑓 𝑛 = 𝑂 𝑔 𝑛 ⟺ ∃𝐶 , 𝑛0 > 0 ∶ ∀𝑛 ≥ 𝑛0 𝑓 𝑛 ≤ 𝐶𝑔 𝑛
f وgگوییم مرتبه اجرایی تابع باشند و در این حالت میتوابعی غیرمنفی میf(n) تابع ،g(n)باشدمی.
های مسائل حد در ریاضیات است و با استفاده از تعاریف و قضیه زیر ارزیمرتبه اجرایی همانند مبحث هم
.توان برای هر الگوریتمی مرتبه اجرایی آن را بدست آوردمی
اجراییمرتبه آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
f(n): 2تعریف = θ(g(n)) اگر و فقط اگر ثابتهای𝑐1 و𝑐2 و ثابت صحیح𝑛0 وجود داشته باشد به
𝑛ای که برای همه مقادیر گونه ≥ 𝑛0،
𝑐1 g(n) ≤ f(n) ≤ 𝑐2 g(n)
𝑓اگر : قضیه 𝑛 = 𝑎𝑚𝑛𝑚 +⋯𝑎1𝑛 +𝑎0 باشد آنگاه𝑓 𝑛 = 𝑂 𝑛𝑚خواهد بود.
اجراییمرتبه آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
f(n): 3تعریف = Ω(g(n))( بخوانیدf(n) اُمگای بزرگg(n) ) فقط اگر اگر و
مقادیروجود داشته باشد که به ازاء کلیه cثابت و𝑛0صحیح ثابت
𝑛 ≥ 𝑛0 ،f(n) ≥ 𝑐 g(n)
𝑐صورت کران پایین تعداد اعمال الزم جهت اجرای یک الگوریتم به در این g(n)محدود گردیده است .
f(n)چنانچه = Ω(g(n)) وf(n)=O(g(n))آنگاه خواهیم داشت:
f(n) = θ(g(n))
اجراییمرتبه آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
f(n): 4تعریف = 𝑜(g(n))( بخوانیدf(n) اُی کوچکg(n) ) اگر و فقط اگر
lim𝑛→∞
𝑓(𝑛)
𝑔(𝑛)→ 0
f(n): 5تعریف = ω(g(n))( بخوانیدf(n) اُمگای کوچکg(n) ) اگر
lim𝑛→∞
𝑔(𝑛)
𝑓(𝑛)→ 0
اجراییمرتبه آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
چنانچه.ندکنمیتقسیمنشدنیرامیاناکاراوشدنیرامیاکارادستهدوبهراهاالگوریتمکارایینظراز
رامالگوریتمآنگاه،O(p(n))مانندباشد،هادادهتعدادبرحسبایچندجملهالگوریتمیکزمانیمرتبه
.بودخواهدشدنی
یکدر.دشومینامیدهنشدنیرامکردمحدودایچندجملهیکبهنتوانراآنزمانیمرتبهکهالگوریتمی
بهمالگوریتاجرایبرایالزمزمان(هادادهطولها،دادهتعداد)هادادهاندازهافزایشبانشدنیرامالگوریتم
.یابدمیافزایششدت
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
n!2𝑛𝑛3𝑛2𝑛 log2 𝑛log2 𝑛n
1211001
362880010241000100333.310
12500025002825.650رقمی15عددرقمی64عدد
1000000100006646.6100رقمی30عدد رقمی157عدد
مختلفهای nهای اجرایی با مرتبهجدول مقایسه
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
برنامه نویسی مقدماتی
هبرنامه سازی پیشرفت
ساختمان داده ها
طراحی الگوریتم
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
های یک عددمقسوم علیه
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
الگوریتم عدد اول
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
الگوریتم تبدیل اعداد زوج به جمع دو عدد اول
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
الگوریتم محاسبه اعداد اول به روش غربالآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
م.م.بالگوریتم بزرگترین مقسوم علیه مشترک
101215150165480
150150330
216032649664096
64645760
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
الگوریتم تجزیه به عاملهای اول
26023031555
1
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
الگوریتم خرد کردن یک اسکناس
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
الگوریتم سری فیبوناچی
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
مسئله ژوزفآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
الگوریتم ادغام یک عدد در آرایه مرتب
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
بازگشت پذیری
و
الگوریتم های بازگشتی
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
روش تقسیم و حل
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
روش حریصانه
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
روش برنامه سازی پویا
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
روش بازگشت به عقب
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
روش انشعاب و تحدید
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
29
این اسالید ها بر مبنای نکات مطرح شده در فرادرس
« آموزش طراحی الگوریتم».تهیه شده است
.ماییدبرای کسب اطالعات بیشتر در مورد این آموزش به لینک زیر مراجعه ن
faradars.org/fvsft109
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org