Without such a representation one could expect processing time to be proportional to N 2 where N is the number of data points in a series. The purpose is to sort data into binary trees so that finding points and neighbours to points requires only a binary search. The algorithm is extended to cope with vectors as well as scalars so that multivariate data can be used. The implementation of these trees is derived from standard binary tree algorithms much modified by the author. The purpose is to sort multidimensional vectors into groups based on their distance from each other.
Distance is measured using the Euclidean metric.
Rather than moving data during the sort process an array of indices is generated. It is these that are sorted. The algorithm sets out to find cut points that approximately balance the number of points either side of the cut. This is done by calculating the mean and variance for each column of data. The column with the largest variance is selected as the discriminator and the mean of that column as the discrimination value.