52
م ت ی ور گ ل وا ها داده مان ت خ ساData Structures and Algorithms A.M. Safaei ه گان ی ش خ ب ی ست ه د داون ام خ هن ن سه اول و ل خ دوم

ساختمان داده ها و الگوریتم

  • Upload
    qabil

  • View
    132

  • Download
    2

Embed Size (px)

DESCRIPTION

جلسه اول و دوم. به نام خداوند هستی بخش یگانه. ساختمان داده ها و الگوریتم. Data Structures and Algorithms. A.M. Safaei. جلسه اول. الگوریتم. الگوریتم مجموعه ای از دستورالعمل ها برای حل یک مسئله می باشد که دارای شرایط زیر می باشد: 1- ورودی : هیچ یا چند ورودی 2- خروجی : حداقل یک خروجی - PowerPoint PPT Presentation

Citation preview

Page 1: ساختمان داده ها و الگوریتم

الگوریتم و ها داده ساختمان

Data Structures and Algorithms

A.M. Safaei

بخشیگانه هستی خداوند نام بهو اول جلسه

دوم

Page 2: ساختمان داده ها و الگوریتم

باشد الگوریتم• می مسئله یک حل برای ها دستورالعمل از ای مجموعه

: باشد می زیر شرایط دارای که

ورودی- : 1 چند یا هیچ ورودی

خروجی- : 2 یک حداقل خروجی

3 :) الگوریتم- ) دستورات از واحدی برداشت مختلف افراد باشند دقیق قطعیت

. باشند داشته

خاتمه- : 4 ای مشخصشده مراحل طی پساز الگوریتم دستورات پذیری خاتمه

یابد

شوند • می سازی پیاده نویسی برنامه های زبان توسط الگوریتم

پیاده • را الگوریتم یک که نویسی برنامه زبان یک دستورات از ای مجموعه

. شود می گفته برنامه کند می سازی

الگوریتم اول جلسه

Page 3: ساختمان داده ها و الگوریتم

حل • توانایی لحاظ از الگوریتم بررسی الگوریتم یک تحلیل از هدف

. باشد می الگوریتم آن کارایی و مسئله

الگورتیم • یک کارایی بررسی

1) اجرا- ) سرعت اجرا زمان

مصرفی- 2 حافظ میران

خروجی- 3 و ورودی عملیات تعداد

و- ...4 مصرفی باند پهنای

مدت • ها، الگوریتم انتخاب در اصلی مالك مواقع، اکثر در «

» باشد می الگوریتم آن اجرای زمان

الگوریتم تحلیل اول جلسه

Page 4: ساختمان داده ها و الگوریتم

الگوریتم :• یک اجرای زمان در مؤثر عوامل

کامپیوتر- : 1• پردازنده ثابت) (سرعت بصورت موثر

نویسی- : 2• برنامه زبان کامپایلر ثابت) (نوع بصورت موثر

ورودی- 3• های داده برروی: ) اندازه زمانی موثر الگوریتم(پیچیدگی

ورودی- : 4• های داده (ترکیب مختلف) شرایط در گیری اندازه قابل

الگوریتم- 5• زمانی پیچیدگی

الگوریتم تحلیل اول جلسه

Page 5: ساختمان داده ها و الگوریتم

الگوریتم- : • زمانی T(n)پیچیدگی

نرم – و افزاري جزئیاتسخت از مستقل که معیاری الگوریتم زمانی پیچیدگی

. باشد می اجراکننده کامپیوتر افزاري

–. کند می بیان را ورودی اندازه و الگوریتم عملیات تعداد بین رابطه که است تابعی

ورودی – اندازه ازای به نظر مورد الگوریتم که عملیاتی تعداد می nیعنی انجام

دهد.

محاسبه ) ( – الگوریتم آن های گام شمارشخطوط از حاصل الگوریتم زمانی تابع

. شود T(n)می

الگوریتم تحلیل اول جلسه

Page 6: ساختمان داده ها و الگوریتم

الگوریتم های شمارشگام

گرفت : نظر در را زیر موارد باید الگوریتم یک های گام شمارش جهت

تعاریف- :1

ها- : 1 زیربرنامه و توابع صفر تعریف گام دارای

procedure p(..) و function f(..) و void f(..) و type f(..)

و- { } : 2 بدنه پایان و صفر شروع گام دارای

متغیرها- : 3 تعریف

گام : – یک باشد شده دهی مقدار که صورتی در

گام int x=0 1تعداد

صفر : – گام باشد نشده دهی مقدار که صورتی در

گام int x 0تعداد

الگوریتم تحلیل اول جلسه

Page 7: ساختمان داده ها و الگوریتم

الگوریتم های شمارشگام

ترتیبی- 2 دستورات

، محاسباتی دستورات شامل و شوند می اجرا یکبار فقط دستورات این

. باشند می جایگزینی و خروجی و ورودی

مثال:

گام x= x+2 1تعداد

گام write(x); 1تعداد

گام return x; 1تعداد

الگوریتم تحلیل اول جلسه

Page 8: ساختمان داده ها و الگوریتم

الگوریتم های شمارشگام

شرطی- : 3 if, switchدستورات

شرطی دستورات در گام دارد+ if: 1تعداد شرط بودن غلط یا درست

شرطی دستورات در گام ساختار+ switch: 1تعداد های حالت گام ماکزیمم

switch

مثال :

الگوریتم تحلیل اول جلسه

if (x>y) 1 گام

x=x-2; 1 گام

else

{

x=x +2; 1 گام

y=y-2; 1 گام

}

مثال : حل

: درست شرط ی ها گام تعداد

1+1

شرط ی ها گام تعداد

2+1نادرست :

Page 9: ساختمان داده ها و الگوریتم

الگوریتم های شمارشگام

4 : ) می- ) اجرا یکبار از بیش دستورات شمارشی ساده تکرار دستورات

شوند.

الگوریتم تحلیل اول جلسه

for (i=a; i<=b; i++)body;

حلقه تکرار b-a+2 = تعداد = b-a+1 تکرار bodyتعداد

for (i=a; i<b; i++)body;

حلقه تکرار b-a+1 = تعداد = b-a تکرار bodyتعداد

for (i=a; i<=b; i+ =c)body;

حلقه تکرار [c/(b-a+1) ] = تعداد+1

( = b-a+1/)c تکرار bodyتعداد

Page 10: ساختمان داده ها و الگوریتم

تمرین

: آورید بدست زیر دستورات گام شمارشfor ( i=5; i<=n; i++){

x=x+1 ; y=y+3;

}

الگوریتم تحلیل اول جلسه

Page 11: ساختمان داده ها و الگوریتم

الگوریتم های شمارشگام

شرطی- :5 تکرار یا ) ( : while دستورات هیچ دستورات، تکرار تعداد

. باشد می اجرا یکبار بیشاز

حلقه – بدنه اجرای دفعات عملیات)( whileتعداد به بستگی و باشد می نامعلوم

ورودی های داده وضعیت و حلقه خاتمه شرط حلقه، بدنه گرفته صورت

. دارد الگوریتم

شوند – می تقسیم یا ضرب عددی در آنها شمارنده که هایی حلقه تکرار تعداد

لگاریتم با است برابر عدد nتقریبا آن مبنای در

الگوریتم تحلیل اول جلسه

nxlog

بدست: مثال را رو روبه الگوریتم گام شمارشآورید

(1) i=n;(2) while (i>1) {(3) y=y-2;(4) i=i/2; }

سطر تکرار تعداد

1 1

2

3

4

جمع

1log2 n

n2log

n2log

23log2 n

Page 12: ساختمان داده ها و الگوریتم

تمرین

الگوریتم تحلیل اول جلسه

(A ) دستور تکرار را someOperationتعداد. آورید بدست

i=n;while(i>1) {

J=1 ; while(j<n)

{ j=j*3;

someOperation; }

i=i/2 ;}

(B) را زیر الگوریتم گام شمارش مجموع. کنید محاسبه

for (i=0; i<=3; i++) for (j=8; j>=2; j--)

x ;++

Page 13: ساختمان داده ها و الگوریتم

الگوریتم زمانی تابع T(n)محاسبه

T(n)= c1 + c2(n+1) + c3n

فرضشود که صورتی بین cدر مقدار باشد c1, c2, c3بیشترین

T(n)= c+c(n+1)+cn = c(2n+1)

الگوریتم تحلیل اول جلسه

(1) x=0;(2) for(i=0;i<n; i++)(3) x++;

سطر زمان تعداد تکرار

1 c1 1

2 c2 n+1

3 c3 n

Page 14: ساختمان داده ها و الگوریتم

تمرین

الگوریتم تحلیل اول جلسه

زمانی کنید T(n) تابع محاسبه را زیر عبارت

x=0;

for(i=0;i<n;i++)

for(j=0; j<n;j++)

x++;

Page 15: ساختمان داده ها و الگوریتم

الگوریتم اجرائی مرتبه

که – است عملیاتی به نیاز الگوریتم یک کارائی و اجرا زمان محاسبه برای

اینکه به توجه با باشد نویسی برنامه زبان و کامپیوتر از T(n)مستقل

متفاوت است ممکن مختلف نویسی برنامه های زبان در که است تابعی

بنابراین. .T(n)باشد نيست ها الگوریتم مقایسه برای مناسبی معيار

نماد F (n)تابع – سه با الگوریتم زمانی پیچیدگی یا و اجرائی مرتبه بعنوان

. دهد نمایشمی زیر

(Big-Oنماد • باال ) حد

(Big-Ωنماد • حدپائین)

(نماد • متوسط ) حد

الگوریتم تحلیل دوم جلسه

Page 16: ساختمان داده ها و الگوریتم

الگوریتم اجرائی مرتبه

بزرگ نماد )Big-ohاFی (Oیا باال( ) حد

نماد – الگوريتم‌ها، زمانی توابع رشد ميزان بررسی بکار Big-ohبرای را

عالمت با آنرا و .Oمی‌برند نمايشمی‌دهند

–T(n)O(f(n)) ثابت اگر فقط و صحيح Cاگر ثابت داشته noو وجود

مقادير همه برای که باشيم nnoباشند داشته ،T(n)Cf(n).

.Oنماد – باشد می اجرائی مرتبه برای باال کران یک

کلی – حالت پيچيدگی f(n)در g اصطالحا یا و الگوريتم اجرای زمانی مرتبه

با و می‌شود ناميده نيز الگوريتم .O(f(n))زمانی می‌شود داده نمايش

الگوریتم تحلیل دوم جلسه

Page 17: ساختمان داده ها و الگوریتم

الگوریتم ) اجرائی (( Oنماد )مرتبه

بنابراین – باشد اگر قضیه

. بود خواهد

نماد )– زمانی تابع و( Oدر بگیریم درنظر را مرتبه بیشترین با جمله باید

. ندارد الگوریتم زمانی مرتبه در تاثیری جمالت ضرایب

نماد – باشد، Oکاربرد می توابع رشد نرخ برای باال حد دادن نشان جهت

تابع رشد نرخ تابع fیعنی رشد نرخ مساوی یا است gکوچکتر

تابع دیکر تابع fبعبارت با برابر سرعتی با .gحداکثر کرد خواهد رشد

تابع )– برای حدباالئی نماد رفتار  f(nاین که می‌رود بکار وقتی و می‌دهد

. باشد داشته مقادیر برای را اجرا زمان بیشترین و حالت بدترین الگوریتم

الگوریتم تحلیل

01...)( nnananf mm )()( mnOnf

))(()( ngOnf

دوم جلسه

Page 18: ساختمان داده ها و الگوریتم

الگوریتم ) اجرائی (( Oنماد )مرتبه

تابع : رشد نرخ برای باالیی حد . T(n)مثال آورید بدست را

کنیم , ثابت باید مثال این nnoدر ، T(n)Cf(n).

مقادیر زیر نامساوی حل با و گیریم می نظر c , n0در

. کنیم می پیدا را

برای مقادیری کردن پیدا ، معادله حل از باشد c , n0هدف می

برای مقدار یک تنها کردن اثبات c , n0پیدا برای

کند کفایتمی

الگوریتم تحلیل

52)( 2 nnnT

))(()( nfOnT

2)( nnf

))(()( nfOnT

دوم جلسه

Page 19: ساختمان داده ها و الگوریتم

الگوریتم ) اجرائی (( Oنماد ) مرتبه

اجرای : زمان يا T(n)مثال مرتبه است موجود الگوريتم تعدادی به مربوط

. نماييد محاسبه را الگوريتم‌ها اين زمانی پيچيدگی

الگوریتم تحلیل

n0=2 T(n)Cf(n) و C=4 اگر T1(n) 4 n3 T1(n)O(n3)T1(n)= 3n3 +3n

T2(n)=4n+5nlogn+2 اگر C=11 و n0=10 T(n)Cf(n) T2(n) 11nlogn T2(n)O(nlogn)

دوم جلسه

Page 20: ساختمان داده ها و الگوریتم

تمرین

کنید ثابت را زیر عبارات نادرستی یا درستی

a) T(n)= (n+1) 2 O(n2)

b) T(n)= 3n3 + 2n2 O(n3)

c) T(n)= 5n O(n2)

الگوریتم تحلیل دوم جلسه

Page 21: ساختمان داده ها و الگوریتم

نماد ) (Oخصوصیات

خواصحدی- :1

بازتابی- :2 خاصیت

3: ) تراگذاری- ) تعدی خواص

الگوریتم تحلیل دوم جلسه

Page 22: ساختمان داده ها و الگوریتم

(Oنماد ) خصوصیات

خواص- 1 سایر

الگوریتم تحلیل دوم جلسه

Page 23: ساختمان داده ها و الگوریتم

بزرگ (Ωنماد: )Big- ΩاFمگای پائین( ) حد

ثابت T(n) (f(n))تعريف: – اگر فقط و صحيح Cاگر ثابت داشته noو وجود

مقادير همه برای که باشيم nnoباشند داشته ،T(n) Cf(n).

که   Ωنماد – می‌رود بکار وقتی و باشد می اجرائی مرتبه برای پائین کران یک

ورودی معین مقادیر برای را اجرا زمان کمترین و حالت بهترین الگوریتم رفتار

دارد

الگوریتم تحلیل

: قضیه

دوم جلسه

Page 24: ساختمان داده ها و الگوریتم

بزرگ (Ωنماد: )Big- ΩاFمگای پائین( ) حد

.(f(n))مثال : آورید بدست را زیر های الگوریتم

الگوریتم تحلیل

T (n)= an2 +bn +c a,b,c>0 : an2 +bn +c an2 C = a , n=1

T(n) (f(n))T(n) Cf(n)

T (n)= n4 +5n2 : n4 +5n2 n4

T(n) Cf(n)

C = 1 , n=1T(n) (f(n))

دوم جلسه

Page 25: ساختمان داده ها و الگوریتم

تمرین

برای – را زیر عبارات .T(n)درستی کنید ثابت شده داده

الگوریتم تحلیل

1- T (n)= 6n +4 (n)

2- T (n)= 3n+2 (n2)

دوم جلسه

Page 26: ساختمان داده ها و الگوریتم

نماد ) (Ωخصوصیات

خواصحدی- : 1

بازتابی- : 2 خاصیت

3: ) تراگذاری- ) تعدی خاصیت

الگوریتم تحلیل دوم جلسه

Page 27: ساختمان داده ها و الگوریتم

نماد ) (Ωخصوصیات

خواص- :1 سایر

الگوریتم تحلیل دوم جلسه

Page 28: ساختمان داده ها و الگوریتم

( نماد : )تتا متوسط( ) حد

ثابت‌های T(n) (f(n)): تعريف– اگر فقط و صحيح C2و C1اگر ثابت وجود n0و

مقادير همه برای که باشند .nn0 : C1f(n) T(n) C2f(n)داشته

قضیه : –

الگوریتم تحلیل

جمله بعبارتی بزرگترین درجه با برابراست دقیقا

o( تابع برای حدمتوسطی نماد صورت  f(nاین به را الگوریتم اجرای زمان و می‌دهد

. می‌دهد نشان مسئله ورودی‌های نمونه کلیه با شده انجام عملیات تعداد از میانگینی

دوم جلسه

Page 29: ساختمان داده ها و الگوریتم

( نماد )

.(f(n))باشد T(n)=n2/2-3nاگر مثال : – نماييد محاسبه را

که: حل می‌دهيم .T(n)(n2)نشان می‌باشد

که : C1 , C2 , n0باید • بطوری باشند داشته وجود

T(n)(n2) C1n2 n2/2-3n C2n2

C1 1/2-3/n C2

ازای • به راست و C2 طرف ½n 1. است برقرار

ازای • به چپ و C1 طرف ¼n 7. است برقرار

ازای • به و C1 بنابراين ¼C2 و ½n 7 عبارتT(n)(n2). بود خواهد

الگوریتم تحلیل

بر n2تقسیم

تعريف طبق

دوم جلسه

Page 30: ساختمان داده ها و الگوریتم

( نماد )

تمرین

کنید – ثابت را زیر عبارات درستی

1. T1(n)= 6n +4 (n)

2. T2(n)= 3n +6 (n2)

T1(n)حل :

الگوریتم تحلیل

: C1n 6n+4 C2n

ازای به معادله راست ازای n0=2و C2=8طرف به معادله طرفچپ n0=1و C1=6وازای به معادله کل لذا است برقرار برقرار n0 2و C2=8و C1=6همواره همواره

است.

دوم جلسه

Page 31: ساختمان داده ها و الگوریتم

نماد ) (خصوصیات

خواصحدی- :1

بازتابی- :2 خاصیت

3:) تراگذاری- ) تعدی خاصیت

تقارنی- : 4 خاصیت

خواص- :5 سایر

الگوریتم تحلیل دوم جلسه

Page 32: ساختمان داده ها و الگوریتم

نمادهای هندسی ، Oنمودارهای ، Ω

الگوریتم تحلیل دوم جلسه

Page 33: ساختمان داده ها و الگوریتم

الگوریتم تحلیل

n

i

n

i

n

i

n

i

n

i

n

mi

ifaiaf

naa

nnnni

nnni

amna

1 1

1

222

1

2

1

)()(

6

)12)(1(...21

2

)1(...21

)1(

ریاضیسیکما خواصعملگر با Ʃآشنایی

از – حلقه هر جای به توان می الگوریتم یک پیچیده حالتهای تحلیل برای

. کرد محاسبه را سیگما حاصل نهایت در و کرد استفاده سیگما

دوم جلسه

Page 34: ساختمان داده ها و الگوریتم

در : تو های حلقه اجرائی مرتبه محاسبه الگوریتم تحلیل

تو

هم- 1 از مستقل تو در تو های حلقه

حلقه = دو تکرارهای تعداد ضرب حلقه داخل دستوارت تکرار تعداد

مثال:

الگوریتم تحلیل

for(i=1;i<=n;i++)

for(j=1; j<=n;j++)

body;

******************

n × n = n² O(n2)

دوم جلسه

Page 35: ساختمان داده ها و الگوریتم

تو : در تو های حلقه اجرائی مرتبه محاسبه الگوریتم تحلیل

هم- 2 به وابسته تو در تو های حلقه

باشد می بیرونی حلقه متغیر به وابسته داخلی حلقه تکرار تعداد

مثال:

for(i=1;i<=n; i++)

for(j=1; j<=I; j++)

body;

نکته :

می- 1 ضرب یکدیگر در وابسته چه و مستقل چه تودرتو های حلقه اجرایی مرتبه

شوند.

2. شوند- می جمع یکدیگر با هم از جدا های حلقه اجرایی مرتبه

الگوریتم تحلیل

n

i

i

j

n

i

nOnn

i1 1

2

1 2

)1(1

دوم جلسه

Page 36: ساختمان داده ها و الگوریتم

الگوریتم اجرائی مرتبه محاسبه جهت نکته چند

با ) ( – است برابر آن اجرائی مرتبه پيچيدگی دھد انجام ثابتی کار الگوریتم اگر

O(1)

باشد – وابسته ورودی به تکرار و باشد موجود تکرار الگوریتم عملیات در اگر

حسب بر آن اجرائی ترین nمرتبه سنگین بررسی به فقط و شده محاسبه

در عملیات ترین سنگین تکرار دستورات مثال بعنوان پردازیم می عملیات

. باشند می الگوریتم یک

مثال:

الگوریتم تحلیل

for (i=0;i<n;i++)x++;*************O(n)

x++;Cout << “snu.ir”*************O(1)

for (i=0;i<n;i++)x++;for (j=0;j<m;j++)x++*************O(n+m)

دوم جلسه

Page 37: ساختمان داده ها و الگوریتم

تمرین :

الگوریتم تحلیل

for (i=0;i<n;i++)for (j=0;j<m;j++)x++*************??

If (x==t)for (j=0;j<n;j*=2)

x++else

cout<<“snu.ir”

*************??

دوم جلسه

Page 38: ساختمان داده ها و الگوریتم

میشوند : تقسیم دسته دو به معموال ها الگوریتم

1) غیربازگشتی- ) ترتیبی های الگوریتم

حبابی • سازی مرتب الگوریتم

•) خطی ) ترتیبی جستجوی الگوریتم

برنامه – از قسمتی مرتبه با برابر ترتیبی الگوریتم یک اجرای زمانی مرتبه

. باشد می دارا را زمان بیشترین که است

بازگشتی- 2 های الگوریتم

فاکتوریل • تابع بازگشتی الگوریتم

فیبوناچی • سری بازگشتی الگوریتم

هانوی • برج بازگشتی الگوریتم

الگوریتم تحلیل دوم جلسه

Page 39: ساختمان داده ها و الگوریتم

بازگشتی های الگوریتم

فراخوانی – را خود غيرمستقيم يا مستقيم بصورت که الگوريتمی

می‌کند.

بازگشتی :– های الگوريتم اساسی ويژگی دو

بازگشتی :– فراخوانی

فراخوانی – عمل

فراخوانی – عمل از بازگشت

از ) – استفاده با قف تو (ifشرط

الگوریتم تحلیل

if ( رسیدی توقف حالت (به

کن حل را توقف حالت مسئله

else

کنی فراخوانی دیگر بار را تابع

دوم جلسه

Page 40: ساختمان داده ها و الگوریتم

فاکتوریل تابع روشبازگشتی

به تا کند می فراخوانی کمتر مقدار یک با را خود آنقدر تابع این

باز قبلی فراخوانی حل به را یک مقدار نهایت در که برسد صفر

. گرداند می

الگوریتم تحلیل

int fact ( int n) { if ( n = = 0) return 1 ; else return( n * fact ( n – 1) ) ; }

ریاضی مدل

f(3) = 3 * f(3 − 1)= 3 * f(2)= 3 * 2 * f(2 − 1)= 3 * 2 * f(1)= 3 * 2 * 1 * f(1 − 1)= 3 * 2 * 1 * f(0)= 3 * 2 * 1 * 1= 6

دوم جلسه

Page 41: ساختمان داده ها و الگوریتم

تمرین :

برج و فیبوناچی هایسری الگوریتم روشبازگشتی

. نمایید بررسی را هانوی

الگوریتم تحلیل دوم جلسه

Page 42: ساختمان داده ها و الگوریتم

بازگشتی های الگوریتم زمانی پیچیدگی

که – است این بازگشتی تابع یک اجرائی مرتبه یا زمانی پیچیدگی از منظور

کلی حالت در .nتابع شود می فراخوانی بار چند

بصورت – تابعی و : f(n-m)اگر گیرد می صورت فراخوانی عمل بار باشد،

با است برابر اجرائی مرتبه

می – صورت بار فراخوانی عمل باشد بصورت تابعی اگر

با است برابر اجرائی مرتبه و گیرد

بصورت – تابعی فراخوانی f(n)= f(n-1)+f(n-1)اگر می 2nعمل صورت بار

با است برابر اجرائی مرتبه و O(2n)گیرد

بصورت – تابعی فراخوانی f(n)= f(n-2)+f(n-2)اگر می 2n/2عمل صورت بار

با است برابر اجرائی مرتبه و O(2n/2)گیرد

الگوریتم تحلیل

m

n

)(m

nO

)(m

nfnmlog

)O(log nm

دوم جلسه

Page 43: ساختمان داده ها و الگوریتم

جایگذاری و روشتکرار به بازگشتی روابط حل

تولید را مناسب جواب توان می متوالی های جایگزاری از استفاده با روش این در

کرد.

.مثال آورید: بدست را رو روبه تابع زمانی پیچیدگی

الگوریتم تحلیل

T(n)=T(n-2)+d =(T(n-4)+d)+d=T(n-4)+2d = . . . =T(n-2i)+id (1)

n-2i=2 i=(n-2)/2 (2)

(1),(2) T(n) = T(2)+(n-2)/2*d C + (n-2)/2*d بنابراين T(n)O(n).

به زمانيکه تا را رو روبه T(2)رابطه

. اگر بنابراين مي‌دهيم ادامه نرسيده‌ايم

n-2i عدد آنگاه 2به می T(2)برسد، حاصل

: شود

دوم جلسه

Page 44: ساختمان داده ها و الگوریتم

جایگذاری و روشتکرار به بازگشتی روابط حل

. آورید: بدست را رو روبه تابع زمانی پیچیدگی مثال

الگوریتم تحلیل

T(n) = 2T(n/2)+d= 2(2T(n/2/2)+d)+d 4T(n/4)+3d= . . . 2i T(n/2i )+(2i -1)d (1)

(1),(2)

T(n) Cn + (n-1)d بنابراين‌‌‌‌‌ T(n)O(n)

به تا مي‌دهيم ادامه آنقدر را رابطه

T(1) برسيم

, T(1)=c

n/2i=1 i=logn2 (2)

دوم جلسه

Page 45: ساختمان داده ها و الگوریتم

با : تمرین – روشتکرار با رو روبه تابع زمانی پیچیدگی

. آورید بدست را جایگذاری

الگوریتم تحلیل

1)2

(2

1)(

2

1

nifnCn

T

nifCnT

دوم جلسه

Page 46: ساختمان داده ها و الگوریتم

استقرا روشحدسو به بازگشتی روابط حل

.مثال آورید: بدست را رو روبه تابع زمانی پیچیدگی

کنيد – .1برابر c2و c1فرض باشد

–. آوريد دست به کانديد حل راه يک اول مقدار چند بررسی با

–: که زنيم T(n)O(n)بنابراين‌‌ T(n)= n+1 حدسمی

الگوریتم تحلیل دوم جلسه

Page 47: ساختمان داده ها و الگوریتم

اصلی روشقضیه به بازگشتی روابط حل

می اند شده بیان زیر فرم به که بازگشتی مسائل حل برای روش این

باشد.

اگر – رابطه این :در داریم

– If a>bk :

– If a=bk :

– If a<bk :

الگوریتم تحلیل

)()()(

nfb

naT

CnT

knnf )(

)()( logabnOnT

)()( lognknOnT

)()( knOnT

دوم جلسه

Page 48: ساختمان داده ها و الگوریتم

اصلی روشقضیه به بازگشتی روابط حل

می اند شده بیان زیر فرم به که بازگشتی مسائل حل برای روش این

باشد.

اگر – رابطه این :در داریم

– If :

– If :

– If a=b :

الگوریتم تحلیل

)()()(

nfb

naT

CnT

knnf )(

)()( logabnOnT

))(()( nfOnT

))((log)( nfOnnT

))((log nfOnab

))((log nfOnab

دوم جلسه

Page 49: ساختمان داده ها و الگوریتم

اصلی روشقضیه به بازگشتی روابط حل

.1مثال آورید: بدست را زیر بازگشتی تابع اجرائی مرتبه

اگر – رابطه این شرط a=2, b=2و k=0لذا در و

a>bk : لذا باشد می برقرار

الگوریتم تحلیل

1)2

(2)( n

TnT

1)( knnf

)()()( log nOnOnTab

دوم جلسه

Page 50: ساختمان داده ها و الگوریتم

اصلی روشقضیه به بازگشتی روابط حل

.2مثال آورید: بدست را زیر بازگشتی تابع اجرائی مرتبه

– a=4, b=2,

الگوریتم تحلیل

nnn

TnT log)2

(4)( 2

nnnf log)( 2

)log()()log( 222loglog 42 nnOnTnnOnnn

ab

دوم جلسه

Page 51: ساختمان داده ها و الگوریتم

Any Question

????

Page 52: ساختمان داده ها و الگوریتم

تحلیل : مبحث از کوئیز آینده جلسه

الگوریتم

الگوریتم تحلیل دوم جلسه