Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка vector'a слиянием 
:(
    Опции темы
m9yt
Дата 13.5.2010, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



Нашел в инете алгоритм,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 - 13.5.2010, 21:57
PM MAIL   Вверх
bsa
Дата 14.5.2010, 10:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



m9yt, отладчик в зубы и вперед!
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1184 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.