更快的时间复杂度数据结构

时间:2014-03-23 21:12:35

标签: performance data-structures time-complexity

时间复杂度中更快的数据结构是什么?为什么? 我需要创建适用于大量数据的应用程序。 我的应用是酒店预订,将列出每个国家的大酒店列表(约20000)。 然后我应该使用这个列表(排序,搜索,遍历...) 列表项包含酒店名称,星级编号,排名,上次预订,照片和价格 一些研究表明哈希表是更快的结构,所有操作都需要O(1)(添加,删除和查找)。 为什么我找不到有关JSON的信息?我可以将JSON对象分类为listArray,hashMap或者什么? 什么会更快?在sql数据库中保存我的数据(inserver端)? XML?还是JSON?

1 个答案:

答案 0 :(得分:1)

没有"更快"数据结构,或者我们都会使用它而忘记其他一切。存在用于不同目的的不同数据结构;选择一个通常是考虑最常见的操作。例如,数组适合随机访问,但如果您打算在元素之间插入或删除大量数据,则可能是一个糟糕的选择。另一方面,列表提供有效的插入和删除时间,但缺乏有效的随机访问 - 这完全取决于权衡。

根据您的帖子和您的要求(以及阅读一些评论后),我最初会尝试使用自我平衡的二叉搜索树,例如AVL Tree或{{3} }。这些似乎是一个不错的选择,因为您可以轻松地进行有序遍历,并获得O(log(n))插入,删除和检索时间。

另一种选择是将酒店存储在Red-black tree中,这是一种常用于实现字典的数据结构,并将酒店名称与您想要的任何数据相关联。

如果你想对数据进行排序,我个人不会使用哈希表。