Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Вопрос на кругозор
Показать сообщение отдельно

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я по капалься и нашел самый для меня понятный код с коментами. Но она не компилирвуется.
Почему?

#include <iostream>
using namespace std;
template<class T> void MergeSort(T *const A, int const n)
{ //Отсортировать массив A, содержащий n элементов

if( n < 2 ) return; //Сортировка не нужна

if( n == 2 ) //Два элемента проще поменять местами,
{ // если нужно, чем делать слияние
if( A[0] > A[1] ) { T const t(A[0]); A[0]=A[1]; A[1]=t; }
return;
}

MergeSort(A , n/2 ); //Сортируем первую половину
MergeSort(A+n/2, n-n/2); //Сортируем вторую половину

T *const B( new T[n] ); //Сюда запишем результат слияния

Merge(A,n/2, A+n/2,n-n/2, B); //Слияние половин

//Копирование результата слияния в исходный массив:
for(int i(0); i<n; ++i) A[i]=B[i];

delete[n] B; //Удаляем временный буфер
}

Последний раз редактировалось Hardcore, 29-09-2010 в 23:39.


Отправлено: 23:15, 29-09-2010 | #5

Название темы: Вопрос на кругозор