【发布时间】:2011-09-03 12:43:11
【问题描述】:
我正在阅读一些关于算法复杂性的文章(我计划稍后参加算法课程),但我不明白以下内容。
假设我要在无序列表中搜索一个项目,找到它所需的步骤数将与该列表中的项目数成正比。在 10 个项目的列表中找到它可能需要 10 个步骤,对于 100000 个项目的列表执行相同操作可能需要 100000 个步骤。所以算法复杂度是线性的,用'O(n)'表示。
现在,此文本[1] 告诉我,如果我要按某个属性(例如社会安全号码)对列表进行排序,则查找项目的算法复杂度将减少到 O(log n),这是很多更快,当然。 现在我可以看到在 b 树的情况下会发生这种情况,但这如何应用于列表?由于英语不是我的母语,我是否误解了文本?
[1]http://msdn.microsoft.com/en-us/library/ms379571.aspx
【问题讨论】:
标签: algorithm list sorting complexity-theory logarithm