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)