有人可以向我解释线性,散列和二元搜索之间的区别吗?
我试图找出我将在书中找到的这些示例使用的搜索类型,我很好奇为什么会出现这种类型的搜索,这样我才能理解如何推断出这个概念。 / p>
在字典中查找单词的定义。
我需要在商店中为特定系统找到特定的视频游戏,游戏按系统组织。
我正在查看机场的出发名单(总是按航班所在的城市排序),你想找到我在列表中飞往西雅图的航班。
添加到第二个示例中,我想找到一个已经针对所有相关系统发布的特定视频游戏,在一个按系统组织游戏的商店中,我不关心我找到哪个系统第一
我进行了一项实验并从按时间戳排序的列表中的参与者收集了数据(也就是说,列表根据参与者的完成时间排序)。我有一个参与者的名字,想知道他或她完成实验的时间。
答案 0 :(得分:0)
线性搜索:
哈希搜索:
二进制搜索:
这应该让您大致了解每个系统的工作原理,它们的优缺点,以及何时使用哪个系统和哪个系统。
更多研究:
关于复杂性的快速说明:时间复杂度是算法将采取的步骤数量(在这种情况下,n表示元素的数量)。您可能希望的最佳复杂性是O(1)(即时)。这里最糟糕的是线性搜索,最坏的情况是O(n)(如果你要找的是列表中的最后一个元素)。