Исправить сортировку Шелла - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте я начинающий в Си++ у меня проблема "Сортировка Шелла"
int increment(long inc[], long size) {
  int p1, p2, p3, s;
 
  p1 = p2 = p3 = 1;
  s = -1;
  do {
    if (++s % 2) {
      inc[s] = 8*p1 - 6*p2 + 1;
    } else {
      inc[s] = 9*p1 - 9*p3 + 1;
      p2 *= 2;
      p3 *= 2;
    }
        p1 *= 2;
  } while(3*inc[s] < size);  
 
  return s > 0 ? --s : 0;
}
 
template
void shellSort(T a[], long size) {
  long inc, i, j, seq[40];
  int s;
 
  // вычисление последовательности приращений
  s = increment(seq, size);
  while (s >= 0) {
        // сортировка вставками с инкрементами inc[] 
        inc = seq[s--];
    for (i = inc; i < size; i++) {
      T temp = a[i];
      for (j = i-inc; (j >= 0) && (a[j] > temp); j -= inc)
        a[j+inc] = a[j];
      a[j+inc] = temp;
    }
  }
}
Я из темы этой (тут) взял вашу программу ... ну меня выдает ошибку как показано на скриншете () Как исправить ? помогите пожалуйста.
пожалуйста

Решение задачи: «Исправить сортировку Шелла»

textual
Листинг программы
template<class T>
void shellSort(T a[], long size)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5