Upload
faradars
View
213
Download
8
Embed Size (px)
Citation preview
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
:مدرس
فرشید شیرافکن
دانشگاه تهران دانشجوی دکتری (بیو انفورماتیک: دکتری( )کامپیوتر نرم افزار: کارشناسی و کارشناسی ارشد )
اجراییمرتبه ( شدارمرور بر مرتبه اجرایی و بررسی تست های کنکور )
1
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
اندازه nی يک الگوريتم، تابعي است که مدت زمان اجرای استفاده شده توسط الگوريتم را بر حسب تعداد داده های ورودپيچيدگي . مي گيرد
2
namenotation
constantO(1)
linearO(n)
logarithmicO(logn)
quadraticO(n^2)
polynomialO(n^c)
exponentialO(c^n)
factorialO(n!)
پیچیدگی اجرایی
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
:در صورتی که داشته باشیم
:مثال
3
)()(...)( 21 mmm nOnfcnnnnnf
)(435)( 22 nOnnnf
مرتبه اجرایی توابع چند جمله ای
)(6)( 828 nOnnnnf
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
4
)()!()2()()lg()()(lg)1( 2 nn nOnOOnOnnOnOnOO
nn lglog2
مقایسه
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
5
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
6
for (i=a ; i<=b ; i=i+k ) s; k
ab 1 for (i=b ; i>=a ; i=i-k ) s;
for ( i=1 ; i<=n ; i=i+1 ) s;
nn
1
11
for ( i=3 ;i<=n ; i=i+2 ) s;
122
13
nn
for ( i=9 ;i<3n+4; i=i+5) s; 1
5
3
5
943
nn
مرتبه اجرایی حلقه های ساده
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
7
for ( i=a ; i<=b ; i=i*k ) s;
1loglog a
k
b
k
for ( i=b ; i>=a ; i=i/k ) s;
for ( i=1 ; i<=8 ; i=i*2 ) s;
41loglog 1
2
8
2
for ( i=27 ; i<=n ; i=i*3 ) s;
2log1loglog 3
27
33 nn
for ( i=n ; i>=16 ; i=i/4 ) s;
1log1loglog 4
16
44 nn
مرتبه لگاریتمی
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
يا
8
for ( i=1 ; i<=n ; i++) {s;
}for ( j=1 ; j<=m ; j++) {
s; }
)( mnO
)),(max( mnO
حلقه های پشت سرهم
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
9
for ( i=1 ; i<=n ; i++ )for ( j=1 ; j<=n ; j++)
s;
2n
for ( i=2 ; i<=n ; i=i+4 )for ( j=n ; j>3 ; j=j-2 )
s;
)(2
3
4
12 2nOnn
for ( i=1 ; i<=n ; i=i*2 )for ( j=1 ; j<=n ; j++ )
s;
)lg()1(lg nnOnn
حلقه های تودرتو
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
10
for ( i=1 ; i<=n ; i++) {for ( j=1 ; j<=n ; j++) {
s;}
}for ( k=1 ; j<=n ; k++) {
s; }
)()),(max( 22 nOnnO
ترکیب حلقه های تودر تو و پشت سرهم
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
11
for ( i=1 ; i<=n ; i++ )for ( j=1 ; j<=i ; j++ )
s;
i 1 2 3 … n
تعداد تکرار 1 2 3 000 n
)(2
)1(...321 2nO
nnn
for ( i=1 ; i<=n ; i=i*2 )for ( j=1 ; j<=i ; j++ )
s;
i 1 2 4 … n
تعداد تکرار 1 2 4 000 n
)(1212212
122...222...421 lg
1lglog210 2 nOnn n
nn
حلقه های تودرتو وابسته
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
12
for ( i=n ; i>=1; i=i - i/3 )s;
1log1loglog 2/3
1
2/32/3 nnfor ( i=n ; i>=1; i= i / (3/2) )s;
2
33
2 iii
مثال
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101(85دولتی-مهندسی کامپیوتر)
؟ درست اندیک از عبارات زیر کدام –الف
-ب
-ج
جالف و ( 4الف و ب ( 3جفقط( 2بفقط ( 1
13
1)( ceOe nnc
)nlogn(On 2
)nlogn(On
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
(n>=3)؟ چند بار تکرار می شود++xکد زیر دستور در
for ( i=3 ; i <=n ; i=i*2 )
x++;
14
1log1loglog 3/
2
3
22 nn
(87دولتی -ITمهندسی )
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
ی زمانی تکه برنامه زیر کدام است؟ هزینه int i = n;
while ( i > 1 )
{
i = i / 2;
j = i ;
while ( j > 1 ){
j = j / 3;
}
}
1 )2 )3 )4 )
15
)(lg nO)n(lgO 2)n(O )n(O 2
(89دولتی -ITمهندسی )
)(lg)(log)log(log)log(log 22
22232 nOOOO nnnnn
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
چه مقداری خواهد بود؟ xاز اجرای قطعه کد زیر، مقدار نهایی پس x=0;for ( i=1 ; i <=n ; i++ ) {
for ( j=1 ; j<=n ; j++ )x++;
j=1;while ( j< n ) {
x++;
j = j*2;
}
}1 )2 )3 )4 )
16
nn log. nlogn2 nlognn2 )nlog1(n
(85دولتی -ITمهندسی )
nnnnnn log)log( 2
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
است؟ زمانی شبه کد زیر کدام گزینه مرتبه
for ( i=1 ; i<=n ; i=i*2 )
for ( j=1 ; j<=n ; j=j*2 )
for ( k=1 ; k<= j ; k++)
x++;
1)2)3)4 )
17
n2nnn log.2)(lognn
(88دولتی -ITمهندسی )
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
.تعداد تکرار را مشخص کنيد
18
for ( i=1 ; i<=n ; i++ )
for ( j=1 ; j<=n ; j=j+i )
x=x+1;
(87دولتی -ITمهندسی )
1 )logn2 )n 3 )nlogn4 )n^2
i 1 2 3 … n
تعداد تکرار n n/2 n/3 000 1
)lg(ln)1
...3
1
2
11(1...
32nnOnn
nn
nnn
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
. تعداد تکرار را مشخص کنيد
1 )logn2 )n 3 )nlogn4 )n^2
19
for ( i=1 ; i<=n ; i++ ){
for ( j=1 ; j<=n ; j++){
x=x+1;
}
n=n-1;
}
(84دولتی -ITمهندسی )
i 1 2 3 … n/2
تعداد تکرار n n-1 n-2 000 n/2
)2^(2
...)2()1( nOn
nnn
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
. تعداد تکرار را مشخص کنيد
1 )logn2 )n 3 )nlogn4 )n^2
20
for ( i=1 ; i<=n ; i++ )
for ( j=1 ; j<=n ; j++)
{
x=x+1;
n=n-1;
}
(86دولتی -ITمهندسی )
i 1 2 3 …
تعداد تکرار n/2 n/4 n/8 000
)(2/11
2/1...)
8
1
4
1
2
1(...
842nOnnn
nnn
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
چندحداقل.مي داريمبررامخزنآبازk/1بارهر.داريمآبليترnبامخزني.(<2k)؟برسدآنازکمترياليتريکبهآبميزانتاکنيمتکرارراکاراينبايدبار
1)2)3)4)
21
n
k
k
1
log
n
k
11
log
n
k
11
log n
klog
(92دولتی-مهندسی کامپیوتر)
)1
;1;( ik
iiinifor k
ki
kii
1)
11(
n
k
k
k
k
n
k
k
1
1
11
logloglog)
1
;1;(
k
k
iiinifor
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
را(nتا،1،2هایاندازهبهدقيقا)گوشتقطعهnقطبيخرس،سردزمستانيکدريتصادفصورتبهراهاگوشتقطعهاينازيکيروزهراو.استکردهذخيرهغاریدر
ود،بزوجاگر.خوردميکامالراآنبود،فردیعددگوشتیاندازهاگر.کندميانتخابرارقغاردرمجدداراديگرنصفوخوردميراآننصفيککند،مينصفدقيقاراآنخيليهایnبرایالگوريتم،اينبا.ميردميخرسنباشد،موجودگوشتياگر.دهدمي
بود؟خواهدچگونهعمرخرسازباقيماندهروزهایبزرگ،
22
(89دولتی -کامپیوترمهندسی )
)(2
2
11
1...)
4
1
2
11(...
42nOnnn
nnn
1 )logn2 )n 3 )nlogn4 )n^2
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
.باشندمي4و3و2و1برابرگوشتهایقطعه،n=4فرضبا.شودميتمامهاگوشتروز7ازبعدبخوردکهترتيبيهربا
.است2n-1مسئلهاينجواب
.است15جوابn=8برای
23
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
24
100n
)n100n(O 2 )2(O n
)nlog.n(O)n80n10(O 23
گزینه دارای بیشترین پیچیدگی محاسباتی است؟ کدام
1 )
2)(90آزاد -مهندسی کامپیوتر )
2) 1)
4) فرادرس(3
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
25
10n n10002!n)n(P
)2(O n
)n1000(O 10
)!n(O
)2!n(O n
(بسیار بزرگ استnفرض کنید )پیچیدگی زمانی چند جمله ای زیر کدام است؟
(89آزاد -مهندسی کامپیوتر )
1)
4) 3)
فرادرس(2
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
26
)!nlog()n(f
!nlog)n(g
3 4 n3n)n(h
))(()()),(()( nhonfngonh
))(()()),(()( nhongnfonh
))(()()),(()( ngonhnfong
))(()()),(()( ngonfnhong
گزینه صحیح است؟ کدام
(89آزاد -مهندسی کامپیوتر )
4)
2)
1)
3)
3/4log nnn
)!n(logn k ))(()( nfonh
))(()( nhong
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
بزرگاویتوابعازایمجموعهبهg(n)،O(g(n))مفروضپيچيدگيتابعبرای:يعنيعبارت:داريمهمهبرایبطوريکهدارند،وجودوcثابتهایآنهابرایکهدارداشاره
بزرگامگاتوابعازایمجموعهبه،g(n)مفروضپيچيدگيتابعبرای:يعنيعبارت
:داريمهمهبرایبطوريکهدارند،وجودوcثابتهایآنهابرایکهدارداشاره
تتاو:يعنيعبارت
27
، )()( ngOnf
)()( ncgnf 0nn 0n
))(()( ngnf
)()( ncgnf
))(( ng
0n0nn
)()( ngnf )()( ngOnf )()( ngnf
نمادهای پیچیدگی اجرایی
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
مثال
28
)(10 22 nOnn
1010210 222 nnnnnn
22 210 nnn
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
29
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
30
,...}65,,lg,47,,{lg)( 2222 nnnnnnnnO
,...}47,,,lg,65,{)( 2632222 nnnnnnnn
,...}47,65,{)( 2222 nnnn
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
خواص توابع رشد
:بازتابی(1
.تراگذاری(2
:تتابرایمثال
:داردتقارنخاصيتتتا(3
4)Oدارندترانهادهتقارنخاصيت:
31
،
))(()())(()( nfngngnf
))(()())(()(
))(()(nhnf
nhng
ngnf
))(()())(()( nfngngOnf
))(()()),(()()),(()( nfnfnfnfnfOnf
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
32
نکته
,...}{)( 2 nnO
,...}{)( 36 nnO
)( 63 nOnn
)))(),((max()()())(()(
))(()(nkngOnhnf
nkOnh
ngOnf
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
33
نکته
,...}{)( 2 nnO
,...}{)( 36 nnO
)( 84 nOn
))().(()().())(()(
))(()(nkngOnhnf
nkOnh
ngOnf
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
34
))n(f()n(f
)))n(g),n(f(max(o)n(g)n(f
2
))n(f()n(f
))n(g),n(f(max(o)n(g)n(f
2
))n(f()n(f
))n(g),n(f(max(o)n(g)n(f
2
))n(f()n(f
))n(g),n(f(max(o)n(g)n(f
2
(90آزاد -مهندسی کامپیوتر )
گزینه صحیح است؟ کدام
1)2)
3)4)
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
35
))n(f())n(f(O)n(f
)))n(f(O()n(g))n(f()n(g
))n(g(O)n(f))n(f()n(g
))n(f())n(f(O))n(f(
(89دولتی -ITمهندسی )
است؟ غلطیک از گزاره های زیر کدام
1)
3)
4)
2) فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
است؟صحیح عبارت کدام
1 )2)
3 )4 )
36
)2()12)(1( 2 nOnnn )()12)(1( 2 nnnn
)()12)(1( 42 nnnn )log()12)(1( 22 nnOnnn
1122)12)(1( 232232 nnnnnnnnnnn
(82دولتی -علوم کامپیوتر)
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
37
)(sin2 nnn
)(sin2 nOnn
)sin( 2 nnn
)sin( 2 nnn
) (84دولتی -ITمهندسی )
کدام یک از گزینه های زیر صحیح است؟
3)
4)
1)
فرادرس(2
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
؟استنادرستعبارت کدام
1 )
2)
3 )
4 )
38
)(10 2 nn nn
)(loglog 102
nn
)!()!(lg nn
)(lg754 23 nnnn
(81دولتی-مهندسی کامپیوتر)
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
: (فرض )یک از گزاره های زیر صحیح است؟زیر ، کدام با توجه به توابع
1 )
2)
3 )
4)
39
))(()()),(()( nhnfngOnf
))(()()),(()( nfngnhnf
))(()()),(()( nfnhnhng
))(()()),(()( ngnfngOnh
k2n
(89دولتی -مهندسی کامپیوتر)
nnh
nng
nfn
n
2
lg
lg
lg)(
lg)(
4)(
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
: چون پس
: بنابراين
40
nk log
2)(
)(
4)(
knh
kng
nf
k
k
))(()( ngOnf kk k4
))(()( nhnf 2k k4
nnh
nng
nf
n
n
2
lg
lg
lg)(
lg)(
4)(
k2n
فرادرس
FaraDars.org
41
پایان
مشاوره با مدرس شیرافکن:( کالس های خصوصی و نیمه خصوصی در شرکت -جهت تهیه جزوه درسی ویژه کنکور )
09121972028
فرادرس
FaraDars.org
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
این اسالید ها بر مبنای نکات مطرح شده در فرادرسآموزش مرتبه اجرایی در ساختمان داده و طراحی الگوریتم »
« (تست کنکور ارشد-مرور ).تهیه شده است
برای کسب اطالعات بیشتر در مورد این آموزش به لینک زیر مراجعه نماییدfaradars.org/fvsfte101
مرتبه اجرایی در ساختمان داده و طراحی الگوریتمfaradars.org/fvsfte101
فرادرس
FaraDars.org