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)