Сортировка Шелла. Количество сравнений. - C (СИ)
Формулировка задачи:
Здравствуйте! Может кто-нибудь помочь?
Требовалось отсортировать массивы разного размера при помощи сортировки Шелла, и оценить количество сравнений и обменов.С количеством обменов я разобрался, а вот как посчитать количество сравнений?
Привожу ниже часть кода самой сортировки
while (step > 0)
{
for (int i = 0; i < (size - step); i++)
{
int j = i;
while (j >= 0 && a[j] > a[j + step])
{
int temp = a[j];
a[j] = a[j + step];
a[j + step] = temp;
j--;
exch+=1;
}
}
step =step/2;
}Решение задачи: «Сортировка Шелла. Количество сравнений.»
textual
Листинг программы
/* было: while (j >= 0 && a[j] > a[j + step]) */ /* стало: */ while (j >= 0 && greater(a[j], a[j + step]))