Либо я чего-то непонимаю, либо вы не так объясняете. Наименьший элемент ищется элементарно:
Код:
Min := Arr[1];
for i := 2 to N
do if Arr[i] < Min then Min := Arr[i];
Найти меньше меньшего невозможно, можно найти только равный меньшему, если последовательность предусматривает повторы. Искать дальше меньший имеет смысл если вы из последовательности исключите элемент определенный как меньший, прежде чем искать вторично, иначе будет бесконечный цикл.
Но зачем вообще так делать, если можно просто отсортировать массив по убыванию и все.