Найти n самых больших элементов из массива

У меня есть массив

A[4]={4,5,9,1}

Мне нужно было бы дать первые 3 верхних элемента, как 9,5,4

Я знаю, как найти элемент max, но как найти 2-й и 3-й максимум?

т.е. если

max=A[0]
for(i=1;i<4;i++)
{
  if (A[i]>max)
  {
    max=A[i];
    location=i+1;
  }
}

на самом деле сортировка не подходит для моего приложения, потому что,

номер позиции также важен для меня, то есть я должен знать, в каких позициях происходят первые 3 максимума, здесь он находится в 0-й, 1-й и 2-й позиции ... поэтому я думаю о логике

что после получения максимального значения, если бы я мог поставить 0 в этом месте и мог бы применить те же шаги для этого нового массива, т.е. {4,5,0,1}

Но я немного запутался, как поместить свою логику в код

Ответы на вопрос(4)

Ваш ответ на вопрос