Я пытаюсь выяснить, как найти общее количество свопов и сравнений, используемых в функции сортировки оболочки, но я не совсем уверен, где разместить добавления свопов и сравнений.
Я добавляю дополнения в эту функцию вставки сортировки ниже.
void insertionSortInterleaved(int numbers[], int numbersSize, int startIndex, int gap) {
int i = 0;
int j = 0;
int temp = 0;
for (i = startIndex + gap; i < numbersSize; i += gap) {
j = i;
while (j - gap >= startIndex && numbers[j] < numbers[j - 1]) {
temp = numbers[j];
numbers[j] = numbers[j - gap];
numbers[j - gap] = temp;
j = j - gap;
totalComps++; //declared globally
totalSwaps++; //declared globally
}
}
}
Я знаю, что totalSwaps в порядке, но я не очень уверен, куда поставить totalComps
, поскольку мы также сравниваем в цикле while.