您是否知道从包含空格分隔整数的现有(未排序)文件创建B树的快速算法。通常,文件的大小将比可用RAM大几个数量级。
您可以假设之后不会修改B树,即它仅用于索引文件中的信息(例如文件包含逗号分隔的字符串)。 而且,B树是用于索引的最佳思路,你能建议其他结构吗?
答案 0 :(得分:1)
这取决于您希望如何访问数据。如果您使用哈希表,则只能通过O(1)中的主键访问元素,这比使用树(log(n))
更快您无法选择Log(n)中树算法支持的范围(介于10和20之间的所有字符串),其中哈希索引可以导致完整扫描O(n)。哈希索引的常量开销通常更大(这不是theta表示法的因素,但它仍然存在),而树算法通常更容易维护,随数据,规模等增长。
如果您不需要排序则使用哈希表,否则使用二叉树(平衡)。