Вот есть какая-то задача, необходимо для ее решения придумать алгоритм. Задача оперирует какими-то данными.
При одной организации данных и способе описания задачи на их основе алгоритмы получаются крайне громоздкими и нетривиальными.
Но, организовав входные данные иначе, просто организовав, даже без всяких решений задачи, как по щелчку пальцев задача и алгоритм становятся чудесным образом простыми, быстрыми и понятными.
Вот и вопрос — как узнать что твои данные организованы оптимальным образом для решения той или иной задачи? Есть ли какой-то формальный способ убедиться в том, что лучше всего данные организовывать и описывать именно так?