Sobes.tech
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)