ANALISIS ALGORITMA REKURSIF DAN NONREKURSIF KELOMPOK A I GUSTI BAGUS HADI WIDHINUGRAHA (0860500) NI PUTU SINTYA DEWI (0860507) LUH GEDE PUTRI SUARDANI (0860508) I PUTU INDRA MAHENDRA PRIYADI (0860500) DESAIN ANALISIS DAN ALGORITMA
PENDAHULUAN Bagamaa megaalss algortma Rekursf? Bagamaa megaalss algortma No- Rekursf? Bagamaa cara mecar komplekstas waktu pada algortma Rekursf da No- Rekursf? Bagamaa cara meetuka otas asmptotk dar algortma Rekursf da No- Rekursf?
Mapulas Pejumlaha Petg ) ( ) (... bawah da atas lmt :teger ; ) ( 0 u l u l b a b a a c ca u l u u u u u
Mapulas Pejumlaha Petg k k k k k a a a a a a a k 0 3 lg lg... 0.577 ; l... ) (...... 3 6 ) )( (...
Algortma Rekursf
Betuk Rekursf Suatu subrut/fugs yag memaggl drya sedr. Pemaggla fugs yag berulag terdapat dalam bod fugs Dega rekursf, program aka lebh mudah dlhat
Tujua Betuk Rekursf Meyederhaaka peulsa program Meggatka betuk teras
Syarat Betuk Rekursf Ada kods termal (bass) Ada subroute call yag melbatka parameter yag laya meuju kods termal (recurrece)
Efses Waktu Algortma Recursve Lagkah-lagkah dalam aalss matemats dar algortma rekursf:. Tetuka parameter yag meujukka ukura put. Tetuka operas dasar algortma (loop terdalam) 3. Tetuka apakah utuk ukura put yag sama bayakya eksekus basc operato sama atau berbeda. 4. Tetuka relas rekures, dega kods awal yag tepat utuk berapa kal algortma aka djalaka 5. Meyelesaka solus relas rekures yag ddapat d omor 4 (t()) 6. Tetuka g() dmaa t() termasuk salah satu
Cotoh Meghtug faktoral Mear hao
Meghtug Faktoral Fucto Faktoral (put : teger) teger {meghaslka la!, tdak egatf} Algortma : If =0 the Retur Else Retur ( *faktoral (-) ) Edf
Aalss Ukura put = Komplekstas waktu: Utuk kasus bass, tdak ada operas perkala T(0) = 0 (kods awal) Utuk kasus rekures, komplekstas waktu dukur dar jumlah perkala () dtambah komplekstas waktu utuk faktoral (-)
Aalss Komplekstas waktu T() =+T(-) T() =++T(-)=+T(-) T() =++T(-3)=3+T(-3) = = = +T(0) = + 0 Jad T() = T() O()
Vsualsas
Meara hao Bagamaa memdahka seluruh prga tersebut ke sebuah tag yag la (dar A ke B); setap kal haya satu prga yag boleh dpdahka, tetap tdak boleh ada prga besar d atas prga kecl. Ada tag peratara C.
Algortma Procedure Hao (put, A, B, C:teger) Algortma If = the Edf Wrte ( Pdahka prga dar,a, ke,b) Else Hao(-,A,C,B) Wrtel( Pdahka prga dar,a, ke,b) Hao(-,C,B,A) Relas Rekures
T()= + adalah jumlah seluruh perpdaha prga dar satu tag ke tag laya. Bla terdapat 64 tumpuka prga da perpdaha prga butuh waktu detk, maka waktu yag dbutuhka : detk 64 detk = 0.446.744.073.709.55.65 detk = kra-kra 600 mlyar tahu
Vsualsas
Algortma No Rekursf
Efses Waktu Algortma Norekursf Lagkah-lagkah dalam aalss matemats dar algortma orekursf:. Tetuka parameter yag meujukka ukura put.. Tetuka operas dasar algortma (loop terdalam). 3. Tetuka apakah utuk ukura put yag sama bayakya eksekus operas dasar yag dlakuka sama atau berbeda. 4. Tetuka rumus sgma yag meujukka berapa kal operas dasar djalaka. 5. Selesaka rumus sgma utuk meghtug bayakya operas dasar djalaka.
Cotoh: Perkala Matrks Max Elemet
Cotoh. Perkala Matrks Algortma PerkalaMatrk(A[0 -,0 -], B[0 -,0 -]) //megalka matrks perseg berordo //put: matrks A da B //output: Matrks C = AB for 0 to - do for j 0 to do C[,j] 0,0 for k 0 to do C[,j] C[,j] + A[,k] * B[k,j] retur C
Cotoh. Aalss() Ukura put = matrks ordo Loop terdalam = perkala da peambaha calo operas dasar Perkala da pertambaha dlakuka tepat sekal dalam setap perulaga, sehgga kta tdak harus memlh atara dua operas Jumlah dar total perkala () M 0j 0k 0 0j 0 0 3
Cotoh. Aalss () Perkraa waktu berjalaya algortma pada mes tertetu T( ) cm () m c 3 m Perkraa yag lebh akurat (termasuk peambaha) T 3 3 3 )( mmc )( aac )( ma ccc ( m a) c c m :waktu satu perkala c a :waktu satu tambaha
Vsualsas
Cotoh. Algortma MaxElemet Berkut adalah algortma utuk mecar eleme terbesar dar sekumpula blaga: ALGORITHM MaxElemet (A[0..-]) //Iput: Array A[0..-] dar blaga real //Output: Nla dar eleme terbesar pada array A max A[0] for to - do f A[] > max max A[] retur max
Cotoh. Aalss () Ukura put dar algortma adalah jumlah eleme pada array, yatu. Operas dasar yag palg bayak deksekus ada dalam loop for. Ada operas dalam loop: perbadga A[] >max da assgmet max A[]. Karea operas perbadga deksekus pada tap teras (da operas assgmet tdak), maka perbadga djadka sebaga operas dasar.
Cotoh. Aalss ()
Vsualsas
Pertayaa Megapa dalam T() O() memaka otas O? Da megapa dalam mapulas pejumlaha petg terdapat peryataa? (Mer Sryat) T() O( ) Buktka bahwa? (Eka Ayugsh) Apa maksud dar termal da body fugs? (Tutde Suputrawa)
Pembahasa. Pembukta T() O() Msalka dberka lmt : lm t )( lm lm g )( Sehgga Jad bear bahwa T() O()
Pembukta ( ) Msalka dberka lmt: TA ( ) lm ~ T( ) B Jka hasl: 0 maka OoG T A () < OoG T B () otas : O C maka OoG T A () = OoG T B () otas : Ɵ maka OoG T A () > OoG T B () otas : Ω
Sehgga lm lm Jad bear bahwa ( )
. Pembukta T() O( ) lm lm 0 log. Jad bear bahwa T( ) O ()
3. Termal adalah kods awal dar suatu fugs rekursf, dmaa kods termal adalah tempat perheta fugs rekursf, sedagka body fugs megadug fugs rekursf. Pemaggla fugs yag berulag terdapat dalam bod fugs. Cotoh dalam pseudocode faktoral, yag mejad termal adalah f (=0) the retur, yag mejad bod fugs adalah retur (*factoral(-))