Так, запишем целевую функцию которую вы минимизируете:
Тернарный поиск по h (расстоянию между хренями) - правильная идея, т.к. целевая функция выпукла.
Но меня дико смущает то, что вы фиксируете каждую из хреней во внешнем цикле. Так же нельзя (или у вас есть доказательство?). При фиксированном h ваша функция:

минимизируется очевидно медианой чисел

, а она, как видите, во-первых, зависит от h, а во-вторых, вовсе даже необязательно совпадает с какой нибудь из хреней.
Так что откажитесь от этой дурацкой идеи фиксировать каждую хрень, и честно вычисляйте медиану во внутреннем цикле