почему метод сортировки выбора запускает цикл с «i = from 1»

#java #sorting #selection

#java #сортировка #выбор

Вопрос:

я работаю с методом выбора short для сортировки массива. метод запускает свой метод минимальной позиции с цикла for, который начинается с «i = from 1». почему он начинается с этого вместо «i = 0»?

может ли кто-нибудь объяснить это для меня, пожалуйста?

Спасибо!

редактировать: добавлен контекст

 /**
 Finds the smallest element in a tail range of the array.
 @param a the array to sort
@param from the first position in a to compare
@return the position of the smallest element in the
 range a[from] . . . a[a.length - 1]
*/
private static int minimumPosition(int[] a, int from)
 {
int minPos = from;
for (int i = from   1; i < a.length; i  )
{
if (a[i] < a[minPos]) { minPos = i; }
}
 return minPos;
 }
}
  

Комментарии:

1. Можете ли вы поделиться некоторым кодом, чтобы у нас был некоторый контекст для этого вопроса?

2. Вы работаете над этим. Расскажите нам, почему вы написали i = from 1

3. Потому что вы пытаетесь найти минимум, и вам не нужно сравнивать [from] с самим собой. По сути, это небольшая оптимизация.

Ответ №1:

Документация уже говорит вам, почему это так, i = from 1 а не i = 0 нет. Документация: Finds the smallest element in a tail range of the array.

Поскольку метод находит наименьший элемент, завершающий from цикл сравнивает только каждый элемент в позиции from или больше. И поскольку a[from] это начальный минимум, вы можете начать сравнение с позиции from 1 .