Junior — Middle
ArrayList түрүндөгү массивдин акырында элемент кошуу операциясынын убакыттык татаалдыгы кандай?
sobes.tech AI
AIден жооп
ArrayList түрүндөгү массивдин акыркы жагына элемент кошуу убакыттык кыйынчылыгы орто эсеп менен O(1) — амортизирленген туруктуу убакыт.
Бул, ArrayList элементтерди белгилүү өлчөмдөгү массивде сакташы менен байланыштуу. Эгер кошуу учурунда жана массивде бош орун болсо, элемент жөн гана кийинки орунга жайгаштырылат.
Эгер массив толуп калса, кеңейтүү операциясы жүргүзүлөт — жаңы, чоңураак массив түзүлүп, бардык элементтер ага көчүрүлөт. Бул операция O(n) убакытты талап кылат, анда n — элементтердин саны.
Мисал:
ArrayList<Integer> list = new ArrayList<>();
list.add(1); // O(1)
list.add(2); // O(1)
// Массивдин сыйымдуулугу жеткенде, кеңейтүү — O(n)
Ошентип, кошуу операциясынын орто эсеп менен убакыттык кыйынчылыгы — O(1), бирок эң жаман учурларда — O(n).