2017年7月28日金曜日

Fusion tree

Mantra in computer science is very complicated.

A fusion tree is a tree data on w-bit integers. It uses O(n) space and performs searches in O(logw n) time, which is faster than the van Emde Boas tree. O(1) is the fastest (MSB).


Sketching is the method by which each w-bit key at a node containing k keys is compressed into only k − 1 bits. The node X are 0,1,2・・・・,(n-1).

This is expansion.

O(n^2)


The fusion tree must be able to search a node containing up to w^1/5 keys in constant time.
There are many start points Xo. It includes (0,1) which is 2^(n-1) bits, but you can search it according to w and Xn. Therefore, you can find max() min(), and successor(x) predecessor(x). X(1) survive.

The computer like copying.

1000000000100000000・・・・
1000100000110000000・・・・
1000010000111000000・・・・
1000000100111100000・・・・

You want to know 100,110,111 for comparison.


empty() is S=φ

delete(x) is setting the bit for x to 0.

There is the collapse.



Each sketch bit in location bi will get shifted to bi + mi.



bi + mj are distinct for all pairs (i, j). This will ensure that the sketch bits are uncorrupted by the multiplication. bi + mi is a strictly increasing function of i. The order of the sketch bits is preserved. The sketch bits can be packed into a range of size at most r^4

0 件のコメント: