You are on page 1of 25
ALGORITMA ANALIZi Buytik-Oh(Big-Oh) Notasyonu: Asimptotik Ust Sinir (En kétii durum analizi) ja SS © Bir algoritmanm caligma siiresi, co T(N)=O(f(n)) 0, birfonksiyon degil, sadece gésterimdir. © T(N) no kosullarim saglayan c ve np degerleri varsa T(N) < c fn) ifadesi dogrudur. © f(a), TCN)‘in asimtotik iist limiti olarak adlandiriln. 3 TINO) f(a) Tn) Gahgma Zamani 10. Eleman séyisi N Big Oh Notation (O) PE Provides an “upper bound” for the function f co Definition: T(N) = 0 (f(N)) if there are positive constants c and ng such that T(N) < cf(N) when N>n, 15 T(N) grows no faster than f(N) 5 growth rate of T(N) is less than or equal to growth rate of f(N) for large N 15 f(N) is an upper bound on T(N) = not fully correct ! Buytk-O Notasyonu (O) CL o A Algoritmasmm Analizi T, (N)=1000N= O(N) 1000NM% Eger c= 2000 ve n, = 1 dan bilyiik her N degeri icin T, (N)=1000 N= O(N) dodru Buytk-O Notasyonu (O) CL co BAlgoritmasmm Analizi T,() = N° = OW’) N?s cN? VN = Ng Eger c=1 ve n, = 1 dan bilyiik her N degeri igin Ornekler PE o 7n+5 = O(n) for c=8 and ny =5 75 < Bn ne5 =n 2 745 = O(n?) for c=7 and n,=2 7nt+5 < Tn? n2Np 5 7n?+3n= O(n) ? o 745 = O(n?) ? BuyUk-O Notasyonu (O) CL = Ornek: T(n) = 2n+5 is O(n?) Neden? Oon>=n0 sartmi saglayan tiim saytlar igin T(n) = 2n+5 <=c*n? sartm saglayan cven, degerlerini anyoruz. Oo n>=4igin 2n+5 <= 1*n? uc=in,=4 Oon>=3 i¢in 2n+5 <= 2*n? =c=2,n,=3 10 Diger cven, degerleri de bukmabilir. BuiyUk-O Notasyonu (O) CL 2 Ornek: T(n) = n(n+1)/2 is O(n?) Neden? on>=1 iken n2/2+n/2 <= n2/2+n2/2 <=n2 lece, T(n)=n*(n+1)/2 <= 1*n2 for alln>=1 ,no= 1 ONot: T(n) ayrica O(n’) tir O Notasyonunun Onemi CL o Iki algoritma kargilastirihrken zaman mertebesinden konusulur. Mertebesi bily tk olanin daha yavas oldugu kolaylkla anlasihr. o Makineler arasindaki fark, katsayilar olarak diisiiniildiiiinde 0(7n?) yerine O(n?) ifadesi gecerli olur. Dolayisiyla sabitler ihmal edilebilir_ve birimlerden kurtulur O Notasyonu | oO notasyonunda yazarken en basit sekilde yazariz. oOrnegin =3n?+2n+5 = O(n?) nAsagndaki gésterimlerde dogrudur fakat kullamlmaz. =3n?+2n+5 = O(3n2#2n+5) =3n?+2n+5 = O(n?+n) =3n?+2n+5 = O(3n2) 10 O Notasyonu-Ornek 1 CL 5 3n?+2nt5 = O(n?) ifadesinin dogru olup olmadigim ispatlaymz. = 10n? = 3n? + 2n?+ 5n? 5 23n?+2n+Sicinn 21 = c=10,m=1 o Céziim kiimesini saglayan kag tane np ve c cifti oldugu énemli degildir. Tek bir gift olmasi notasyonun dogrulugu igin yeterlidir. a O Notasyonu-Ornek 2 PE © T(N)=0(7n2+5n+-4) olarak ifade edilebiliyorsa, T(N) fonksiyonuasagidakilerden herhangi biri olabilir. = T(N)=n? = T(N)=4n+7 = T(N)=1000n2+2n+300 = T(N)= O(7n?+5n+4) =O(n?) 2 O notasyonu- Ornek 3 PE o Fonksiyonlarm harcadiklar1 zamanlan 0 notasyonuna gére yaziniz. 5 f1(n) = 10 n+ 25 n? = f2(n) = 20 nlogn+ 5n 5 £3(n) = 12 nlog n+ 0.05 n? 5 f4(n) = n/? +3 nlogn B Omega Notasyonu (Q) - Asimtotik Alt pobmit (En iyi durum analizi) | © O notasyonun tam tersidir. © Her durumda T(N) 2 cf(n) ve N> ng kosullarm saglayan pozitif, sabit c ve n, degerleri bulunabiliyorsa T(N)= O(f(n)) ifadesi dogrudur © f(n), T(N)'in asimtotik alt limiti olarak adlandmnhr. Galisma Zamant 0. Eleman Sayisi N 4 Omega Notation CL Example: 2 T(n) = 2n+5 > O(n). Neden? 2n+5 >= 2n, tim n >= 1 icin 2 T(n) = 5*n?- 3*n > O(n?). Neden? o5*n2-3*n >= 4*n?, tiimn >= 4 i¢in an"=Q (Ign). oe= Ive n,=16 n>16 (ign) g(m) = OCF(N)) Kanit: A(N) < g(n) <=> g(n) 2 cof(N) divide the left side with c, 1/q,f(N) < g(n) <=> g(n) = GAN) if we choose c, as 1/c, then theorem is right. 16 Omega Notation CL o 7n?+ 3n+5 = O(n) o 7n?+ 3n+ o 7n?+ 3n+ o 7n?+ 8n+5 = O(n’) o 7n?+ 3n+5 = O(n) o 7n?+ 3n+5=O(1) n?ve 7n?+ 3n + aym oranda artar Tn? + 34 5 = O(n?) = O(n?) = 8 (n?) 7 Theta Notasyonu (8) (Ortalama durum analizi) = o Her durumda clf(n) > T(n) > c2 f(n) ve n> nO kosullarm saglayan pozitif, sabit c,,c, ve Ny deerleri bulunabiliyorsa T(n)= @(f(n)) ifadesi dogrudur. elo) F(a) Galisma zamant n0. Eleman Sayisi n 18 Theta Notation (8) CL o Ornek: T(N) = 3N2 T(N) = O(N) T(N) = O(N) T(N) = @(N2) > best 19 Theta Notation (8) CL = T(n) = 2n+5 > O(n). Neden? O2n <= 2n+5 <= 3n, tiimn >= § icin = T(n) = 5*n? - 3*n > @(n?), Neden? 0 4*n?<=5*n?-3*n <= 5*n2, tiimn >= 4 i¢in 20 10 Theta Notation (8) CL Examples + n®/2 -n/2 = O(n?) + An -unsKntvn20 = on % + Ynt-Ynewm-“vn*Yn(wne2)=“M> o=% +m ¢ O(n): Gn? onlyholds torn s 1/6, + 6n? 4 @(n2): e, mn? < 6n? < €; MP only holds for: a Theta Notation (8) > Another example + Prove that 57°-sn=e4n*) + Determine c,, ¢, and n, such that For any polynomial p(1)=S7-gapt pin) =0(n) . g=7 2 cre Buytk-Oh, Theta, Omega CO 3 ipucu: © O(F(N)) diisiiniirsek , f(N) “esit veya kiigiik” © Ustten smu: f(N) “yavas veya ayn hizda bi © O(F(N)) diisiiniirsek F(N) “esit veya biiytik” © Alttan smin f(N) “ayni huzda veya huzh bity tix” © O(F(N)) ditsiiniirsek f(N) “esit” © Alttan ve Usten smrr : biiyiime oranlari esit (nin bityiik oldugu ve sabitlerin eendigi durumlarda) 23 Sikga Yapilan Hatalar Ls o Karmasikhgi bulmak igin sadece déngiileri saymakla yetinmeyin. © 2 igi ice déngiiniin 1 den N? kadar déndigiint diigiintirsek karmasikhk O(N‘) olur. « O(2N2) veya O(N2+N) gibi ifadeler kullanmaym. 1 Sadece baskmm terim kullanilr. o Ondeki sabitler kaldwilr. a igige déngiiler karmasikhg direk etkilerken art arda gelen déngiiler karmasikhgi etkilemez. 24 12 Bazi Matematiksel ifadeler S(n}=2+243+44.N= Spa NWed = 2 Karelerin Toplam: ", N*(N+D*Qn+1) NP “3 Geometrik Seriler: 25 Bazi Matematiksel ifadeler CL Lineer Geometrik seriler: Dir! =x+2x7 43x) + +m" ia (xl) = Dx =x" ex ol lol 1 Harmonik seriler: H, = J7=1+5+54..+—=(Inm)+0() ati log 4° = B*log 4 Logaritma: !0e 4*B) = log 4+ log B A log =) = log A—log B loa) = log A-log 26 13 Bazi Matematiksel ifadeler Iki sinur arasindaki sayilarin toplam 4 4 a TV/O=L/O-T LO 27 Kurallar Ls o Kural 1: Eger T,(N) = O(f(N)) ve T,(N) = O(g(N)) ise a) T,(N) + T.(N) = max (O(f(N)), O(g(N))) b) T,(N) * T2(N) = O(F(N) * g(N)) 28 14 Kurallar Ls o Kural 2: if T(N) isa polynomial of degree k T(N) = a,NE + a.,NE14 ...ta,N tay then T(N) = O(N‘) 29 Kurallar CL > Kural 3: log N= o(N) for any constant k logarithm grows very slowly ! 30 15 ktigtk-o Gésterimi ik-O (Big-O) gésterimi ile kardes olan bir gésterim de kiigiik-o (small-o) gésterimidir. Bu iki gésterim arasindaki temel fark kitgik-o goésteriminde asimptotik iist smir (asymptotic upper bound) fonksiyonunun tamammcan bityiik olmasidir Yani bityitk-O gésterimindeki esitlik durumu yoktur © f(x) = og(x) igin ffx) < c g(x) sarti saglanmahdi. © Dolayistyla f(x) = O (f(x)) tani dogru olurken f(x)=o(f(x)) tanumi hatalidir. Bazi dneKler asagida verilmistir: Vx=0(x) 31 Bazi yaygin fonksiyonlar CL = 0 (log N) => c=O(log N) but c#(logN) = log N= o(log? N) = log? N= o(N) o(N log N) = N=o (N2) = N2=0 (NS) = NB=0 (2) 32 16 CL TogN [S581 [aaa oes [Ta [rea oaar vow fraser fas fovsir farast [arses fowran VW |ss0 fo sua jam [tex | 100 yw fio Jace | reo | e000 | ro0x0 | rorxne wing fasz1 faotas [ows fazer |r from ee [aw fie | aueeto® Jar wv fa fiw fae fa 10 we from aoe Jar aoe fief 2 fro fiow fiom arm from Yrs we [sass fosnom fre fro roe frome 3 Ornekler CL 5 Ornekler : T(N) = 4N2 ‘T(N) = O(2N2) correct but bad style T(N) = O(N?) drop the constants TCN) = O(N7+N) correct but bad style T(N) = O(N?) ignore low order terms # uw Biiyiime Oraninin Hesap Edilmesi > tim 22) -9 > ry occ Noe 2(N) =c#0=> f(N)= O(N) =2=> g(N)=o(f(N)) =oscilate > there is no relation 35 = Example: f(N)=7N2—_g(N)=N24+N 36 18 En iyi zaman (Tbest) CL © Bir algoritma icin, yiirtitme zamam, maliyet veya karmasikhk hesaplamalarinda en iyi sonucun elde edildigi duruma “en iyi zaman’ denir. © Ornegin bir dizide yapilan aramanm en iyi durumu, aranan elemanmn dizinin ilk elemamt olmasidir. 37 En iyi zaman (Tbest) et 1 i; 1 hia (NT sta 2 1 2 cs 1 ° ° if (all-key) print found| veya return i) 2 1 2 else print not found|veya return 0) Trost (N) = 5 = O(1) 38 19 En k6ti zaman (Tworst) CL © En kétii zaman, tiim olumsuz kosullarm olusmasi durumunda algoritmanm ¢éziim iiretmesi icin gerekli hesaplama zamamidit: © Ornegin bir dizi iginde arama yapilmasi durumunda en kétii durum aranan elemann dizide olmamasidn: Ciinkti aranan elemanin dizide olmadmm anlasilmasi icin biitiin elemanlara tek tek bakilmasi gerekir. 39 En k6ti zaman (Tworst) CL ‘iim zaman | Frekans | Toplam (unictime) | (Frequency) | —(rotl) i 1 7 7 while (af ey] and im) 2 Nea awe ie 7 N 6 TF (ali-kay) print found{ veya return) 2 t 2 ‘prot not found veya return 0) T worst (N) = 3N+5 = (N) TN) + 8(N) T(N) = O(N) 40 20 Ortalama zaman (Taverage) © Ortalama zaman, giris parametrelerin en iyi ve en kétit durum arasinda gelmestile ortaya kan durumdaharcanan_ zamandir. © Bu isletim siiresi, her girdi boyutundaki tim girdilerin Oriana n slenatin her birt aranina glaaiigan esit oldugu varsayildiginda ve liste cigindan bir eleman aranmayacaia varsayldénda ortalama isletim siiresi (n+1/?'dir. Tkinci varsayim kalciriidiginda ortalama igletim sitrest [(a+1)/2n] arahgindachr (aranan elemanlarm listed ailimit olarak). Ortalana durum analizi basit gersek performansin iyi tahmin edilememesineneden olabilir. aL Ortalama zaman (Taverage) wile (ald hey) and i) 2 we 22 ra 2 « k 1 Galskey) print found veya return i) 4 2 . int not founelveya return 0) a2 21 Kural 1: Dongtler CL Bir déngunun galigma zamani en cok déngi igindeki deyimlerin galigma zamaninin terasyon sayisiyla ¢arpilmasi kadardir, for deta t shar m=m+2; -—— Sabiteaman } Toplamzaman= sabit ¢* n= en= O(N) icon; +4) 43 Kural 2:i¢ ige Dongiiler PE Tgleki anal yapiir Toplamzaman ¢algma sayin garpimina esti for (i int Dig dingo for G=L:jc=mjre)( >) ‘sdine ndefa kth ne ne cage } sebitianan Toplamzaman= ¢* n*n*= er? = O(N) 22 Kural 3: Ardisik deyimler Her deyimin zaman birbirine eklenit toplam zaman = ¢y + ¢,n+ ¢gh= O(N) 4s Kural 4: If-then-else deyimleri En kot gagna zamanstest zamaruma then veya else una celigna zamannan hangjl biyilkse o kasm eklenix test: t(aepth() otherstack dept) sabit return false } then tse Digerit Hebai}eqeisotlerseaciay) | oe ger Mit equals{ ater . sabitesabit Tetum ise (sabitssabit)*mn else yok ) (else yok) ; Topiamzaman= cg +c,¢(2* &)*1= O(M a 23 Kural 5: Logaritmik karmasiklik Problemin biyiklOguni belli oranda{genelde ¥) azaltmakigin sabi bir zaman harcaniyorsa bualgoritma O(log, ‘Nya, Ornek algoritma (binary search) N sayfali bir sozlUkten bir sézcuk arama + Sealigiin orta kasmna bake + Sezciik ortaya gore sada na solda na kaldi buluran? + Buislem sag veya solda sbzcuk bulumana kadar ‘telearlamr a7 RECURSIVE CALLS Example 1: Algorithm for computing factorial int factorial (int n) t aif (n<=-1) nee arse ; for muttiplicat . telee yy, |) 2 for: multiplication return n*factorial(n-1); } 21s } + cost of evaluation of T(n) = cost of evaluation of factorial of n trial) Tin) =4+ T(t) Ta) =1 48 24 RECURSIVE CALLS 447(0-1) 44 4+T(n-2) k4+T(0-k) ke n-1=> (n-1)*4 + T(n-(n-1)) (n-1)*4+ T(1) T(n) = 8 (n) 49 Kaynaklar o Veri Yapilari ve Algoritmalar, Dr. Rifat COLKESEN, Papatya yaymeilik o Ahmet Yesevi Universitesi Ders Notlar1 a http:/ (www.kaanaslan.com /resource/article/display ar ticle.php7id=94 o C & Data Structures, P. 8. Deshpande, 0. G. Kakde a http://www.bilgigunlugum net/cprog/c isaretci html o http://yumishch.me/MITS03.html © Lecture Notes, inang TAHRALI © https:/Awww.hanmurat.com /blog/algoritma-analizi- dersnotlari/ 50 25

You might also like