Оцените сложность времени и амортизированную стоимость этих функций - PullRequest
0 голосов
/ 29 апреля 2019

Пусть maxItem будет числом с плавающей запятой с начальным значением 0, а list будет дважды связанным списком чисел с плавающей запятой, которые поддерживают следующие операции:

Вставить ( listIter ):

добавить новый элемент со значением 1 в список после listIter iterator;

, если maxItem <1, установить <em>maxItem : = 1

Увеличение ( listIter ):

увеличить значение элемента на listIter на 2;

, если list [listIter] > maxItem , установить maxItem : = list [listIter]

RemoveLargeElements ():

threshold = [len(list)/3]
if maxItem > threshold:
    maxItem = 0
    for all listIter in list:
        if list[listIter] > threshold:
            remove the element at listIter
        else if list[listIter] > maxItem:
            maxItem = list[listIter]

Оценить временную сложность всех операций в худшем случае и их амортизированную стоимость.

Если я правильно понимаю, временная сложность в худшем случаерегистр O (1), O (1) и O (n) соответственно.И поэтому амортизируется стоимость первых двух функций, если O (1).Но у меня есть трудности с амортизированной стоимостью последней функции, как мне найти ее, используя метод учета?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...