关于算法设计手册的问题 - 词典的数据结构

时间:2011-06-10 21:02:17

标签: algorithm data-structures dictionary

我开始阅读算法设计手册,在阅读时我遇到了一条我没有得到的线。有人可以请你澄清一下作者的意思吗?该行是:

已排序的链接列表或数组 - 通常是维护已排序的链接列表 除非你试图消除重复,否则不值得这样做,因为我们 不能在这样的数据结构中执行二进制搜索。排序的数组将 当且仅当没有多少插入或删除时才适用。

此行与选择字典的数据结构有关。 我没有得到的一点是,为什么作者说“维护一个已排序的链表通常不值得这样做,除非你试图消除重复,因为我们 不能在这样的数据结构中执行二进制搜索

根据我的理解,我用Google搜索,看看我们是否可以对已排序的数组进行二进制搜索,并根据我发现的情况进行搜索。所以我不确定。

有人可以帮我理解这个吗?

非常感谢。

1 个答案:

答案 0 :(得分:5)

您无法有效地在链表上执行二进制搜索,因为您无法在恒定时间内随机搜索。要找到中点,您必须执行n / 2步(遍历列表)。这增加了很大的开销,使列表不适合二进制搜索数据结构。