Open In App

Cache oblivious kd-Tree

Cache-oblivious kd-tree data structures are a great utility that performs multi-dimensional orthogonal range searching. One of the salient terms of kd trees is binary space partitioning which periodically subdivides space into two convex sets by using hyperplanes as splitting.

This article focuses on discussing the following topics in detail- 



  1. Cache Oblivious kd-tree.
  2. Van Emde Boas Layout.
  3. Operation on Cache Oblivious kd tree.
  4. Advantages of Cache Oblivious kd-tree.
  5. Limitations of Cache Oblivious kd-tree.

Cache-Oblivious kd-tree

Partitioning of the plane

Van Emde Boas Layout 



Operation on Cache Oblivious kd-tree

This section focuses on discussing the three operations on Cache Oblivious kd-tree-

  1. Insertion
  2. Querying
  3. Deletion

Let’s discuss each of these operations in detail-

1. Insertion:

With the help of the Van Emde Boas layout, an exponential layout is elucidated. In this layout, a balanced binary tree T with N leaves is recursively decomposed into a set of components, which are each laid out using the Van Emde Boas layout’s INSERT property.

Let us assume for analysis of the structure, that N is of form 22 ^ C, C here is a non-negative integer.

A binary tree T of height O(log2 N) with N leaves can be laid out in O(N) adjacent memory locations, such that any root-leaf path can be traversed cache-obliviously in O(logN) memory transfers.

2. Querying:

How querying is done?

C(N)=2+2C(N/4) = O(√N). 

3. Deletion:

i=0log log N O( 1/B logM/B N1/2i) = O( 1/B logB N) = O(logB N) memory transfers.

Advantages of Cache Oblivious kd-tree:

Limitations of Cache Oblivious kd-tree:


Article Tags :