Junior — Middle
რა არის ელემენტის ამოღების ოპერაციის დროითი სირთულე მასივში?
sobes.tech AI
პასუხი AI-სგან
მომსახურების დროის სირთულე მასივიდან ელემენტის წაშლის დამოკიდებულია იმაზე, სადაც მდებარეობს ელემენტი და როგორ არის განთავსებული მასივი.
-
თუ საჭიროა ელემენტის წაშლა ინდექსის მიხედვით, დინამიკურ მასივში (მაგალითად, List Dart/Flutter-ში), წაშლის შემდეგ ყველა შემდეგი ელემენტი გადაინაცვლებს, რათა შეავსოს ცარიელი ადგილი. ეს იწვევს დროის სირთულეს O(n), სადაც n არის წაშლილი ელემენტის შემდეგი ელემენტების რაოდენობა.
-
თუ ბოლო ელემენტი წაიშლება, ოპერაცია ხორციელდება O(1) დროში, რადგან გადანაცვლება საჭირო არ არის.
Dart-ის მაგალითი:
List<int> numbers = [1, 2, 3, 4, 5];
numbers.removeAt(2); // წაშლის ინდექსზე 2 (რიცხვი 3)
// წაშლის შემდეგ, ინდექსებზე 3 და 4 ელემენტები გადაინაცვლებს მარცხნივ
საერთო ჯამში, მასივიდან ელემენტის წაშლა არის ოპერაცია, რომლის დროის სირთულე არის O(n).