Вы делаете несколько ошибок здесь.Во-первых, вы каждый раз сбрасываете countSwaps, поэтому он не считается больше единицы:
…}
countSwaps = 0; // <--------- here!
swap(Array, i, max); …
Во-вторых, вы вообще не учитываете сравнения;Вы подсчитываете, сколько раз запускается внешний цикл.Вы должны увеличивать countComps каждый раз, когда происходит фактическое сравнение:
for (int j = i + 1; j < Array.Length; j++)
{
++countComps; <--------- here!
if (Array[j] > Array[max])
max = j; // max equals biggest in list j
}
Сортировка выбора - это сортировка O (n ^ 2), и вы, вероятно, получите несколько миллионов сравнений для 5000 записей, чтоэто много, и именно поэтому мы обычно не используем сортировку выбора для больших коллекций.Сортировка O (n * log n), такая как сортировка слиянием, будет производить что-то вроде 60 тыс. Сравнений.