Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2010, 22:55   #1
m9yt
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 108
По умолчанию Сортировка vector'a слиянием

Нашел в инете алгоритм,Image Processing, подогнал его под свой вектор, а в результате программа завершается аварийно.Исправьте, пожалуйста меня!

Эти функции определены в классе Programm
Код:
bool cmp(ID* obj1, ID* obj2){return obj1->id>obj2->id;}
bool cmp2(ID* obj1, ID* obj2){return obj1->id<=obj2->id;}
Код:
void Programm::Merge(MyCollection *A, int nA,
                            MyCollection * B, int nB,
                             MyCollection * C)
{
	int a(0), b(0);
	while( a+b < nA+nB )
    {
        if( (b>=nB) || ( (a<nA) && cmp2(A->at(a),B->at(b))))
        {
            C->at(a+b) = A->at(a);
            ++a;
        } else {
            C->at(a+b) = B->at(b);
            ++b;
        }
    }
}
Код:
void Programm::MergeSort(MyCollection *collection , int n)//n=collection->size()
{
	ID* t;//указатель на абстр класс
	int i=0;
	if( n < 2 ) return; 
	if( n == 2 )
    {           

		if(cmp(collection->at(0),collection->at(1)))
		{ 
			t=collection->at(0); collection->at(0)=collection->at(1); collection->at(1)=t; 
		}
        return;
    }
	MergeSort(collection, n/2  );
	MergeSort(collection+n/2, n-n/2);
	MyCollection *B;
	B=new MyCollection;
	Merge(collection,n/2, collection+n/2,n-n/2, B);
    for(int i(0); i<n; ++i) collection->at(i)=B->at(i);
}
После вызова MergeSort(collection+n/2, n-n/2) программа вылетает с ошибкой Expression_Pvector == NULL || (((_Myvec *)_Pvector)->_Myfirst <= _Ptr && _Ptr <= ((_Myvec *)_Pvector)->_Mylast));
m9yt вне форума Ответить с цитированием
Старый 14.05.2010, 02:42   #2
kedbl4
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 28
По умолчанию

дайте весь код полностью, чтобы скомпилить и отладчиком посмареть что и как
kedbl4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка слиянием Aндрей Общие вопросы C/C++ 3 15.04.2010 09:47
Сортировка слиянием maxflint Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 05.12.2009 20:41
Сортировка слиянием файлов [MI_nor] Общие вопросы C/C++ 1 01.06.2009 20:56