Сортировка Шелла. Количество сравнений. - 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]))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д