itup
Постоялец
- Регистрация
- 8 Окт 2007
- Сообщения
- 94
- Реакции
- 66
- Автор темы
- #1
Всем привет и спасибо за помощь. В двух словах мне необходимо на Си решить задачку по сортировкам методом слияния (mergesort). Суть такова что надо вначале написать функцию merge() и потом нав основе ее написать саму задачку mergesort.
Подскажите кто-то в чем у меня ошибка
Код:
void merge(int array[], int lo, int mid, int hi) {
int i, m, k, l;
int temp[hi];
l = lo;
i = lo;
m = mid + 1;
for ( ; l <= mid && m <= hi; i++ ) {
if ( array[l] <= array[m] ) {
temp[i] = array[l];
l += 1;
} else {
temp[i] = array[m];
m += 1;
}
}
if ( l > mid ) {
for ( k = m; k <= hi; k++, i++ ) {
temp[i] = array[k];
}
} else {
for ( k = l; k <= mid; k++, i++ ) {
temp[i] = array[k];
}
}
for ( k = lo; k <= hi; k++ ) {
array[k] = temp[k];
}
}
Подскажите кто-то в чем у меня ошибка