Կարգավորում Insertion Sort, Merge Sort Ալգորիթմներ Կարգավորում Insertion Sort, Merge Sort
Կարգավորում Որոշ կիրառություններ Հեռախոսի կոնտակտների ցուցակ դասավորված այբենական կարգով Երգերի ցուցակ դասավորված երգերի անուններով Գտնել հաջորդականության մեջտեղի(որից մեծ և փոքր էլեմենտների տարբերվում է ամենածատը 1 ով) էլեմենտը (Find median).
Կարգավորում տեղադրումով (Insertion Sort) Ալգորիթմ Դիցուք ունենք A – հաջորդականությունը։ Ավելացնել A[ i ] – րդ էլեմենտը արդեն կարգավորված A[ 0 ⋯ (i-1) ] հաջորդականության մեջ՝ օգտագործելով համեմատություն և տեղ փոխելու գործողությունները բոլոր i = 1,2, ⋯ ,n համար։
Բարդություն։ T(n) = Θ (𝑛 2 ) Վերցնելով i-րդ էլեմենտը ամեն անգամ - անցնում ենք n-1 էլեմենտների վրայով; Կատարելով Θ(𝑛) քայլ։ Ամեն քայլի ժամանակ էլ վատագույն դեպքում կատարում ենք Θ(𝑛) գործողություն։ T(n) = Θ (𝑛 2 ) Ուշադրություն։ Մեծ n–երի դեպքում Θ(𝒏) ≈ Θ(𝒏−𝟏)
2 մատի ալգորիթմ (2 finger algorithm ) Խնդիր։ Ունենք A և B կարգավորված հաջորդականություններ համապատասղանաբար x և y չափանի։ Անհրաժեշտ է կառուցել C կարգավորված հաջորդականություն՝ 𝑥+𝑦 : չափանի։ Նշանակենք 𝑥+𝑦=𝑛 : Oրինակ ՝
Բարդություն T(x,y) = Θ 𝑥+𝑦 =Θ 𝑛
Merge Sort Կիսել հաջորդականությունը 2 մասի ՝ աջ և ձախ։ Նույն գործողությունը կատարել ստացված 2 զանգվածների համար։ Կիսել այքան ժամանակ մինչև ամեն զանգվածում մնա 1 թիվ։ Այնուհետև օգտագործելով 2 մատի ալգորիթմը միացնել դասավորված զանգվածները։
Օրինակ
Բարդություն։ T(n) = Θ(n∗log 2 𝑛 ) Հաջորդականությունը 2 մասի բաժանելը կատարվում է հաստատուն ժամանակում այդ իսկ պատճառով ալգորիթմի բարդության վրա ազդեցություն կթողնի միայն հետ հավաքելու պրոցեսը։ Ամեն շերտում ունենք ամենաշատը n - հատ թիվ։ Օգտվելով 2 մատի ալգորիթմից կստանանք որ ամեն շերում կատարվում է Θ n գործողություն։ Հեշտ է համոզվել, որ շերտերի քանակը log 2 𝑛 +1 Է։ Սրանից էլ հետևում է ալգորիթմի բարդությունը՝ T(n) = Θ(𝐧∗𝒍𝒐𝒈 𝟐 𝒏 )
https://ipc.am/en/course/?l=algorithms Շնորհակալություն https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F- 5jb5L2iHb&index=1 https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction- to-algorithms-fall-2011/ https://ipc.am/en/course/?l=algorithms