Sobes.tech
Junior — Middle

Ամենափոքր ժամանակային բարդությունը ինչ է զանգվածի սկզբին տարր ավելացնելու գործողության համար?

sobes.tech AI

Պատասխան AI-ից

Էլեմենտի ավելացումը զանգվածի սկզբին սովորաբար ունի ժամանակային բարդություն O(n), որտեղ n — զանգվածի տարրերի քանակն է:

Սա կապված է այն բանի հետ, որ սկզբին ավելացնելու համար անհրաժեշտ է տեղափոխել բոլոր առկա տարրերը աջ, որպեսզի ազատ տեղ ստեղծվի նոր տարրի համար: Դինամիկ զանգվածներում (օրինակ, Swift Array) այս գործընթացը պահանջում է պատճենում կամ տեղափոխում տարրեր, ինչը ժամանակ է պահանջում, proporcional առ տարրերի քանակին:

Օրինակ՝

var array = [2, 3, 4]
array.insert(1, at: 0) // ավելացնում ենք 1 սկզբին
print(array) // [1, 2, 3, 4]

Այստեղ, երբ ավելացնում ենք 1-ը, բոլոր տարրերը տեղափոխվում են աջ մեկ դիրք։