Когда я определяю сложность Java-кода, подобного этому, нужно ли мне выражать это в тэте или большой букве O?
List<Person> sortedPersons = new ArrayList<Person>();
List<Person> people = new ArrayList<Person>();
for (int i = 0; i < people.size(); i++) {
Person toadd = people.get(i);
int index = 0;
while(index < sortedPersons.size() && sortedPersons.get(index).compareTo(toadd) < 0)
index++;
sortedPersons.add(index, toadd);
}
Я знаю, что цикл for равен O (n)(или это \ Theta (n)?) Операция get выполняется за постоянное время, поэтому O (1).Но как насчет цикла while?sortedPersons.size (): O (1) sortedPersons.get (): O (1) Является ли операция сравнения линейной?И я думаю, что операция добавления также выполняется в постоянное время.Какова общая сложность кода?