Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
3 / 3 / 2
Регистрация: 16.11.2010
Сообщений: 165
1

проверте где ошибка в mergeSort

13.11.2011, 17:16. Просмотров 567. Ответов 2
Метки нет (Все метки)

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <fstream>
#include <vector>
#include <iomanip>
#include "merge_sort.h"
#include "merge_sort.cpp"
 
 
using namespace std;
 
int main(int argc, char *argv[])
{   
    ifstream input_file("file.txt"); // îòêðûâàåì ôàéë ñ äàííûìè
    vector<Sort<int, int> > v; // Âåêòîð ýëåìåíòîâ
    Sort<int, int> e; //  ñòðóêòóðà
    while(!input_file.eof()) // ïåðåìåùàåì ôàéëû â âåêòîð
    {
      input_file>>e.x;
      input_file>>e.y;
      v.push_back(e);
    }
    mergeSort(v);
     cout<<"  KEY"<<"***"<<"DATA"<<endl;
    for(int i=0; i<v.size(); i++) // Âûâîä
      cout<<setw(5)<<v.at(i).x<<' '<<setw(5)<<v.at(i).y<<endl;
    input_file.close();
    system("PAUSE");
    return EXIT_SUCCESS;
}
mergeSort.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef FUNC
#define FUNC
#include <vector>
#include <iostream>
#include "merge_sort.h"
using namespace std;
 
template<class T>
void mergeSort(vector<T>& Mas, size_t l=0, size_t r=Mas.size() - 1) {
        
 
    if (l < r) {
     
    size_t M = (l + r)/2;
 
    mergeSort(Mas, l, M);       // ñîðòèðîâàòü ëåâóþ ïîëîâèíó 
    mergeSort(Mas, M+1, r);// ñîðòèðîâàòü ïðàâóþ ïîëîâèíó 
    merge(Mas, l, M, r);    // ñëèòü ðåçóëüòàòû â îáùèé ìàññèâ
}
}
 
 
 
template<class T>
void merge(vector<T>& Mas, size_t l, size_t M, size_t r) {
  vector<T> Mas1;
  size_t pos1=l;
  size_t pos2=M+1;
  size_t pos3=0;  
  
  
  T *temp =  Mas1[r-l+1];
    while (pos1 <= M && pos2 <= r) {
    if (Mas[pos1] < Mas[pos2])
      temp[pos3++] = Mas[pos1++];
    else
      temp[pos3++] = Mas[pos2++];
  }
  for (pos3 = 0; pos3 < r-l+1; pos3++)
    Mas[l+pos3] = temp[pos3];
 
 
  }
#endif
mergeSort.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef FUNC
#define FUNC
#include <vector> 
 
 
 
template<class T, class T1> // Ñòðóêòóðà ýëåìåíòà
struct Sort{
  T x; // Êëþ÷
  T1 y; // Äàííûå // Ôóíêöèÿ ñðàâíåíèÿ
};
 
#endif
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2011, 17:16
Ответы с готовыми решениями:

Сортировка MergeSort
База Должна отсортироваться по дате вклада но она не сортируется а выводит просто базу. Подскажите...

Не работает сортировка (MergeSort)
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; const int N =...

QuickSort и MergeSort: недостатки и преимущества
Добрый вечер! Qsort плоха тем, что в худшем случае работает за О(n^2). Mergesort стабильна и...

Реализация многопоточной mergesort на windows
Необходимо было реализовать многопоточную сортировку слияниями массива целых чисел по возрастанию,...

2
Каратель
Эксперт С++
6598 / 4019 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
13.11.2011, 17:18 2
Цитата Сообщение от 2008kedr2008 Посмотреть сообщение
проверте где ошибка в mergeSort
ошибка какая? сортирует неправильно или не компилится или чего?
1
3 / 3 / 2
Регистрация: 16.11.2010
Сообщений: 165
13.11.2011, 17:22  [ТС] 3
вот все ошибки
\merge_sort\main.cpp In function `int main(int, char**)':
`mergeSort' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
D:\Ó÷åáà\Ìåò. ïðîã\merge_sort\Makefile.win [Build Error] [main.o] Error 1
не знаю что делать, спасайте=)))

 Комментарий модератора 
2008kedr2008, Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе. Для поднятия темы вверх, достаточно в ней оставить сообщение.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2011, 17:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка)
задан текст нужно вывести на экран количество слов где первая и последняя буквы одинаковы #include...

Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил)
написать универсальный тип, который представляет точку на плоскости в координатах (х, у) и в...

Проверте матрицу
Помогите подправить программу,чтобы выводило матрицу,согласно задаче. Задача:Задана матрица...

проверте програму
Всем доброго времени суток! вот создал програму про списки, ошибки при компиляции не выскакивают,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.