Download presentation
Presentation is loading. Please wait.
1
Գագաթի որոնում (Peak Finder)
Ալգորիթմներ Գագաթի որոնում (Peak Finder)
2
Գագաթի որոնում: 1-չափանի դեպք։
a-i թվեր են 2-րդ էլեմենտը կանվանենք գագաթ այն և միայն այն դեպքում երբ, a ≤ b և b ≥ c: 1-ին էլեմենտը կանվանենք գագաթ է եթե a ≥ b 9-րդ տեղը կանվանենք գագաթ է եթե i ≥ h
3
Օրինակ
4
Խնդրի դրվածք։ Գտնել որևէ 1D-գագաթ, եթե այն գոյություն ունի
Ապացուցել, որ սկզբում տրված սահմանումից հետևում է գագաթի գոյությունը
5
Հերթով դիտարկել բոլոր էլեմենտները։
Լուծման ալգորիթմ 1։ Հերթով դիտարկել բոլոր էլեմենտները։
6
Բարդություն։ T(n) = Θ(n)
Վատագույն դեպք T(n) = Θ(n)
7
Լուծման ալգորիթմ 2։ Բաժանիր, որ տիրես (divide and conquer)
Եթե a[n/2] < a[n/2-1] ապա գագաթ ման գալ 1-ից n/2-1 հատվածում Հակառակ դեպքում Եթե a[n/2] < a[n/2+1] ապա գագաթ ման գալ 1-ից n/2+1 հատվածում a[n/2] գագաթ է։
8
Բարդություն։ T(n) = Θ(log 2 𝑛 )
T(n) = T(n/2) + Θ(1) T(n/2) = T(n/4) + Θ(1) ⋯ T(2) = T(1) + Θ(1) T(1) = Θ(1) Θ(log 2 𝑛 ) T(n) = Θ(1) + ⋯ +Θ(1)
9
Θ(n) vs Θ(log 2 𝑛 )
10
Implementation of algorithms in java
Lab Implementation of algorithms in java
11
Գագաթի որոնում: 2-չափանի դեպք։
a էլեմենտը կանվանենք գագաթ այն և միայն այն դեպքում, երբ a ≥ e, a ≥ b, a ≥ c, a ≥ d
12
Խնդրի դրվածք։ Գտնել որևէ 2D-գագաթ, եթե այն գոյություն ունի
Ապացուցել, որ սկզբում տրված սահմանումից հետևում է գագաթի գոյությունը
13
Լուծման ալգորիթմ 1։ Վերցնել կամայական էլեմենտ, շարժվել ձախ-ներքև-աջ եթե համապատասխան էլեմենտը ավելի մեծ է։ Օրինակ՝ n=m=3
14
Բարդություն։ T(n,m) = Θ(n*m)
15
Լուծման ալգորիթմ 2։ Ֆիքսենք կամայական սյուն (օրինակ ՝ i-րդ) և գտնենք 1D-գագաթ։ Ենթադրենք այդ գագաթը գտնվում է j-րդ տողում։ Գտնենք այդ j-րդ տողի 1D-գագաթը որը և կհանդիսանա 2D- գագաթ։
16
Հակաօրինակ
17
Լուծման ալգորիթմ 3։ Վերցնենք մեջտեղի սյունակը` j = m/2 և գնտենք այդ սյունակի գլոբալ մաքսիմումը։ Ենթադրենք դա i-րդ տողում է։ Եթե (i,j-1) > (i,j) ապա դիտարկել ձախ սյունակներև ՝ (i,1) –ից (i,j-1) Հակառակ դեպքում, եթե (i,j+1) > (i,j) ապա դիտարկել աջ սյունակները ՝ (i,յ+1) –ից (i,m) Հակառակ դեպքում (արդեն կունենանք որ (i,j) ≥ (i,j-1) և (i,j) ≥ (i,j+1)) (i,j) կհանդիսանա 2D-գագաթ
18
Բարդություն։ T(n,m) = Θ(n∗log 2 𝑚 )
Կիսվեց մաքսիմում T(n,m) = T(n,m/2) + Θ(n) T(n,m/2) = T(n,m/4) + Θ(n) ⋯ T(n,2) = T(n,1) + Θ(n) T(n,1) = Θ(n) Ունենք T(n,1) = Θ(n) T(n,m) = Θ(n)+ ⋯ + Θ(n) Θ(log 2 𝑚 )
19
Θ(n*m) vs Θ(n∗log 2 𝑚 ) Մասնավորապես, երբ m=n
20
Շնորհակալություն 5jb5L2iHb&index=1 to-algorithms-fall-2011/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.