Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 将多个值插入B+;立马_Algorithm - Fatal编程技术网

Algorithm 将多个值插入B+;立马

Algorithm 将多个值插入B+;立马,algorithm,Algorithm,对于一个元素,插入到b+树中的值为O(logn),对于m个元素,插入到b+树中的值为O(mlogn)。有可能做得比这更好吗?例如,通过假设要插入的大多数元素在结果中大部分是连续的(并对它们进行预排序),是否有办法将其简化为类似于O(m log m+log n)?即使这是可能的,也不要忘了您需要一个相当大的树(n)来进行排序 O(m log n)与O(m log m)产生显著差异,尤其是在后一种情况下,如果你有一个更大的常数。 假设你的树有十亿(10^9)个节点,两个常数都是1,那么它的9*m操作

对于一个元素,插入到b+树中的值为O(logn),对于m个元素,插入到b+树中的值为O(mlogn)。有可能做得比这更好吗?例如,通过假设要插入的大多数元素在结果中大部分是连续的(并对它们进行预排序),是否有办法将其简化为类似于O(m log m+log n)

即使这是可能的,也不要忘了您需要一个相当大的树(n)来进行排序 O(m log n)O(m log m)产生显著差异,尤其是在后一种情况下,如果你有一个更大的常数。
假设你的树有十亿(10^9)个节点,两个常数都是1,那么它的9*m操作与m log m操作相对应

说得好。然而,由于b+树节点访问通常涉及磁盘搜索,因此附加到日志n的常数可能非常大(远大于m日志m上的常数,尽管后者逐渐变大)。