Если вы можете придумать алгоритм лучше, чем O (N ^ 2), вы можете опубликовать его!
Это проблема 3-SUM Hard , и существует ли субквадратичный алгоритм (т. Е. Лучше, чем O (N ^ 2)), поскольку это открытая проблема. Было показано, что многие общие проблемы вычислительной геометрии (включая вашу) сложны в 3SUM, и этот класс проблем растет. Как и NP-Hardness, концепция 3SUM-Hardness оказалась полезной в доказательстве «стойкости» некоторых проблем.
Чтобы доказать, что ваша проблема сложная 3SUM, см. Превосходную статью по теме: http://www.cs.mcgill.ca/~jking/papers/3sumhard.pdf
Ваша проблема появляется на стр. 3 (обычно называется 3-POINTS-ON-LINE) в вышеупомянутой статье.
Итак, наиболее известным на данный момент алгоритмом является O (N ^ 2), и он у вас уже есть: -)