使用单链接循环列表实现字典

时间:2014-07-01 11:42:08

标签: algorithm dictionary data-structures

我正在解决一个问题,我必须使用单链接的循环列表来实现字典操作插入,删除和搜索。您的程序的运行时间是多少?
1)插入:可以在O(1)
中完成 2)删除:可以在O(1)
中完成 3)搜索:我不确定。 O(length_of_linked_list)是最糟糕的情况。

可以在快速运行时间内完成搜索吗?

1 个答案:

答案 0 :(得分:0)

插入和搜索,都不能用O(1)完成(除非你使用散列)。 主要有三种可能性:

  1. 搜索O(nlogn)并插入O(1)
  2. 搜索O(logn)并插入O(logn)
  3. 搜索并插入O(1)
  4. 例如,当您在链接列表的最终位置插入并在排序(快速排序平均为nlogn)之后使用迭代进行搜索时,将使用第一个。当您使用较少的搜索用法维护数据库而不是插入用法时,这很有用。 第二个是有用的,例如当您使用k-ary搜索方法排序插入和搜索时,记录登录时间。这很有用,例如在电话簿中,搜索次数多于插入次数。现在有一天,哈希技术更多地用于处理这些问题(O(1))。 因此,使用散列和索引,我们可以实现O(1)时间搜索和插入的这种功能。 删除时间与搜索相同,因为您可以在找到元素之后在0时间内删除(再加上一些指针移位,不是什么大不了的事。)