Подсчет перестановок при сортировке массива С

Всем доброго времени суток! У меня есть массив (пока создала из 4 чисел) сортирую методом прямого выбора. Нужно посчитать количество перестановок при сортировке. Возникла проблема. При сортировке рандомного массива, например: 11 17 24 10, все считается правильно, количество сравнений равно 6, а перестановок = 3, но при сортировке массива сформированного по убыванию: 24 17 11 10, то количество перестановок = 0. Почему так получается? вот пример кода:

//функция сортировки методом прямого выбора
void towardSort(int num[], int size)
{
  int min, temp, c, m, b; 
  //количество пересылок и сравнений
  m=0; c=0;
  //проходимся по массиву
  for (int i = 0; i < size; i++) 
  {
        min = i; //запоминаем индекс первого элемента
        //поиск минимального элемента, который поместим на место i
        for (int j = i + 1; j < size; j++)  
        {
            c++;// подсчет сравнений

      if (num[j] < num[min]){
        min = j;
        m++; //подсчет перестановок
        }
        
    }
        temp = num[i];  
        num[i] = num[min];
        num[min] = temp;
        
    printf("%d ",num[i]);
  }

    printf("\nКоличество сравнений: %d\n", c);

    printf("Количество перестановок: %d\n", m);
}  

Ответы (0 шт):