Junior — Middle
Որքան ժամանակային բարդություն ունի սլայսի միջոցով զանգվածի վերջում տարր ավելացնելու գործողությունը?
sobes.tech AI
Պատասխան AI-ից
Go-ում, սլայսի վերջում տարր ավելացնելու գործողությունը (append) ունի ամորտիզացված ժամանակային բարդություն O(1):
Նկարագրություն:
-
Եթե սլայսը ունի բավարար ծավալ (
capacity), ապա տարր ավելացնելը պարզապես տեղի է ունենում հաջորդ ազատ ինդեքսին գրելով — սա գործողություն է հաստատուն ժամանակով: -
Եթե ծավալը բավարար չէ, ապա նոր մեծածավալ զանգված է հատկացվում, հին տարրերը պատճենվում են, և ավելացվում է նոր տարրը — սա գործողություն է O(n), որտեղ n ներկայիս սլայսի չափն է:
Սակայն, քանի որ նման վերաօգտագործումները չեն տեղի ունենում ամեն ավելացման ժամանակ, այլ միայն ժամանակ առ ժամանակ, ավելացման միջին (ամորտիզացված) բարդությունը մնում է O(1):