gpt4 book ai didi

data-structures - 如何在恒定时间复杂度内在排序链表中插入项目?

转载 作者:行者123 更新时间:2023-12-04 07:22:26 24 4
gpt4 key购买 nike

我在排序链表中遇到问题。我无法在恒定时间内插入项目。如果可能的话,我该如何解决?

这个函数的时间复杂度是 Big-O(N)

template <class ItemType>
void SortedType<ItemType>::InsertItem(ItemType item)
{
NodeType<ItemType>* newNode;
NodeType<ItemType>* predLoc;
NodeType<ItemType>* location;
bool moreToSearch;

location = listData;
predLoc = NULL;
moreToSearch = (location != NULL);
while (moreToSearch)
{
if (location->info < item)
{
predLoc = location;
location = location->next;
moreToSearch = (location != NULL);
}
else moreToSearch = false;
}
newNode = new NodeType<ItemType>;
newNode->info = item;

if (predLoc == NULL)
{
newNode->next = listData;
listData = newNode;
}
else
{
newNode->next = location;
predLoc->next = newNode;
}
length++;
}

最佳答案

不可能在恒定时间复杂度内在排序链表中插入项目。但是您可以以 O(log n) 时间复杂度插入项目。

how to apply binary search O(log n) on a sorted linked list?

关于data-structures - 如何在恒定时间复杂度内在排序链表中插入项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30822719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com