Commit Graph
2 Commits
Author SHA1 Message Date
Kiran Eiden 389b0e8e67 Only sort in CoverTree::find function if there are more than k points
Sorting only needs to be done if the list of KNN candidates is greater
than length k.
2022-01-04 14:50:47 -08:00
Kiran Eiden f93286ffbd Fix bug in cover tree KNN algorithm
Prior to this change, the find function implementation for the
CoverTree class could have potentially returned the wrong result
in cases where there were multiple points in the dataset
equidistant from p. For example, the current test passed for k=3
but failed to produce the correct result for k=4 (it claimed that
3, 4, 5, and 7 were the 4 closest points to 5 in the dataset
rather than 3, 4, 5, and 6). Sorting the neighbors vector before
collecting the first k values from it resolved this issue.
2022-01-02 20:05:39 -08:00