Junior — Middle
Чӣ тавр муайян кардани мураккабии вақти илова кардани унсур ба ArrayList?
sobes.tech AI
Ҷавоб аз AI
ArrayList-а элемент қосу уақыт күрделілігі әдетте амортизацияланған түрде O(1). Бұл келесі себептерге байланысты:
- Егер
ArrayList-тің ішкі массивінде бос орын болса, жаңа элемент жай ғана келесі орынға жазылады — операция тұрақты уақыт O(1) алады. - Егер ішкі массив толы болса, кеңейту жүзеге асырылады: үлкенірек өлшемді жаңа массив жасалып, барлық элементтер сонда көшіріледі. Бұл операция O(n) уақыт алады, мұнда n — тізімнің ағымдағы өлшемі.
Алайда, кеңейту әр қосуда емес, кезең-кезеңімен жүзеге асырылады, сондықтан қосу операциясының орташа (амортизацияланған) күрделілігі O(1) болып қалады.
Мысал:
ArrayList<Integer> list = new ArrayList<>();
list.add(10); // Амортизацияланған O(1)