Вряд ли найдется программист, кто не знает или не сможет написать эти алгоритмы. Куда ж проще?
minIndex = 0 min = a[minIndex] for i = 1 to n-1 if a[i] < min minIndex = i min = a[minIndex]
maxIndex = 0 max = a[maxIndex] for i = 1 to n-1 if a[i] > max maxIndex = i max = a[maxIndex]
Интересен подход Р.Г. Дроми для нахождения максимального элемента с использованием маркеров:
i = 0 while i < n max = x[i] x[n] = max i++ while x[i] < max i++
Обратите внимание на то, что в алгоритме инициируется дополнительный элемент массива - a[n](т.н. маркер). А также на тот факт, что максимум ищется без использования оператора if!
Алгоритм соответственно минимума в этом случае будет иметь только одно отличие: знак меньше("<") меняется на больше(">") строке 6.