
Insert( x_{1}, x_{2}, ..., x_{n} ) { Find the leaf node L (block) that is used to store (x_{1}, x_{2}, ..., x_{n}); if ( leaf node L (block) has enough space ) { insert (x_{1}, x_{2}, ..., x_{n}) in L; return; } else { /* ====================================================== 1. Split leaf node L into 2^{n} parts !!! 2. Add an internal node with search key for these 2^{n} leaf nodes ====================================================== */ Let m_{1} = the median of the x_{1} values in L; Let m_{2} = the median of the x_{2} values in L; ... Let m_{n} = the median of the x_{n} values in L; Split the records in L into 2^{n} blocks according m_{1}, m_{2}, ..., m_{n} Replace L by an internal node I with seacrh key (m_{1}, m_{2}, ..., m_{n}); Make the 2^{n} blocks as child nodes of I; } } 
Example: (n = 2)

