Найти индекс минимального и максимального.
Если нужно, поменять местами, чтобы один был меньше другого. ИНДЕКСЫ, не элементы.
А теперь цикл.
++низИндекс
--верхИндекс
пока низИндекс < верхИндекс
поменять a[низИндекс], а[верхИндекс]
++низИндекс
--верхИндекс
Если индексы беззнаковые, надо проверить как-то, что первое --верхИндекс не приведёт к «антипереполнению». Например, «если верхИндекс > 0»…