【发布时间】:2014-07-01 11:42:08
【问题描述】:
我正在解决一个问题,我必须使用单链循环列表来实现字典操作插入、删除和搜索。您的程序的运行时间是多少?
1) 插入:可以在 O(1) 中完成
2)删除:可以在O(1)中完成
3) 搜索:我不确定。 O(length_of_linked_list) 是最坏的情况。
搜索可以在更快的时间内完成吗??
【问题讨论】:
-
我是否应该假设您的链接列表已排序?
-
@AyushJain 如果你假设链接列表按排序顺序而不是插入将不会在 O(1) 中实现。
-
是的,我正要这么说。然后我猜如果没有排序,搜索不能在 O(log(n)) 时间内完成。应该是 O(n)
-
@AyushJain 哪个更好?插入 O(1) ,搜索 O(n) .... 或插入 (log n) 和搜索 (log n) ?
-
您听说过
Self-organising lists或Skip-list吗?好吧,如果没有,那么这里有给你的链接。你可以咨询他们。 geeksforgeeks.org/self-organizing-list-set-1-introductiongeeksforgeeks.org/skip-list
标签: algorithm dictionary data-structures