Вы можете сократить время, исключив ввод-вывод. Чтобы проверить свой алгоритм, удалите из уравнения столько объектов, которые не находятся под непосредственным контролем вашей программы. Например, ОС управляет вводом / выводом, это вне вашего контроля. Массив с постоянным текстом устраняет большую вовлеченность ОС (ОС все еще может page массив в зависимости от выделения памяти ОС).
Далее, большинство древовидных структур ориентированы на данные. Время их выполнения зависит от данных. Попробуйте три набора данных: отсортированные по возрастанию, «случайные» и отсортированные по убыванию. Отметьте время для каждого.
Посмотрите на свои циклы и исключите любые константы. Создайте временные переменные в циклах для постоянных вычислений во внутренних циклах. Удалите ненужные операции.
Наконец, если ваша программа и алгоритм очень надежны, работайте над другими проектами. Оптимизируйте только при необходимости.