kNN construction uses a partial-sort approach that stores only floor(log(n)) neighbours per node, yielding O(n^2 log n) time and O(n * log(n)) working memory.
MST is computed via igraph::mst() on a sparse edge list constructed from integer index vectors.