Алгоритм работает от О(n), как совет могу предложить сразу сортировать всю таблицу по возрастанию цены, тогда минимальный будет элемент с индексом 0, средний - (id последнего)/2, максимальный элемент - последний id. Как алгоритм сортировки предлагаю использовать qSort