Ну, в первую очередь это зависит от вашей конкретной реализации и набора данных.
Плохо сбалансированное дерево будет означать, что вам придется искать гораздо больше данных, чем нужно. Убедитесь, что у вас здоровая конструкция дерева.
Это также может зависеть от того, как вы найдете k соседей. Если ваш алгоритм ищет в дереве ближайшего соседа и сохраняет его, затем ищет второй ближайший и сохраняет его и т. Д., Тогда вы не выполняете поиск очень эффективно. Вместо этого сохраняйте текущий список k ближайших соседей и точек удара из списка, поскольку вы находите более близкие, проходящие через дерево. Таким образом, вы ищете один раз, а не k раз.
В любом случае, похоже, что вы делаете это для курса. Попробуйте поговорить со своим профессором, ТА или одноклассниками, чтобы узнать, типичны ли ваши результаты.