Форум программистов, компьютерный форум CyberForum.ru

Соеденить 3 разных программы - C++

Восстановить пароль Регистрация
 
landraider
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 5
16.12.2010, 11:06     Соеденить 3 разных программы #1
В наличии 3 вида сортировки - Шелл, Хоар, слияние ( shellsort, quicksort, mergesort ).

все используют шаблон. огромная просьба помогите совместить их. и если кто сможет указать на ошибки, какие там есть.

Передомной стоит задача сделать едиую программу с обычным меню выбора сортировки, а потом в каждой из них при помощи ручного ввода переменных показать что каждая из них работает.
Использую Турбо с++ в данный момент проблемма в создании меню ввода переменных и вывода конечного результата сортировки. также не могу правильно соеденить их. простоянно какаято лажа((

Слияние
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
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
template <class T>
void mergeSort(long lb, long ub);
void main(){}
                    // a - сортируемый массив, его левая граница lb, правая граница ub
template <class T>
void mergeSort(T a[], long lb, long ub)
{
  long split;                           // индекс, по которому делим массив
 
  if (lb < ub)
  {                                     // если есть более 1 элемента
 
    split = (lb + ub)/2;
 
    mergeSort(a, lb, split);            // сортировать левую половину
    mergeSort(a, split+1, last);        // сортировать правую половину
    merge(a, lb, split, ub);            // слить результаты в общий массив
 
  }
  getch();
}
Хоар
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
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
template<class T>
void quickSortR(T* a, long N);
void main(){}
template<class T>
void quickSortR(T* a, long N) {
// На входе - массив a[], a[N] - его последний элемент.
 
  long i = 0, j = N;        // поставить указатели на исходные места
  T temp, p;
 
  p = a[ N>>1 ];        // центральный элемент
 
  // процедура разделения
  do {
    while ( a[i] < p ) i++;
    while ( a[j] > p ) j--;
 
    if (i <= j) {
      temp = a[i]; a[i] = a[j]; a[j] = temp;
      i++; j--;
    }
  } while ( i<=j );
 
 
  // рекурсивные вызовы, если есть, что сортировать
  if ( j > 0 ) quickSortR(a, j);
  if ( N > i ) quickSortR(a+i, N-i);
}
Шелл
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
template<class T>
void shellSort(T a[], long size);
void main() {}
int increment(long inc[], long size) {
  int p1, p2, p3, s;
 
  p1 = p2 = p3 = 1;
  s = -1;
  do {
    if (++s % 2) {
      inc[s] = 8*p1 - 6*p2 + 1;
    } else {
      inc[s] = 9*p1 - 9*p3 + 1;
      p2 *= 2;
      p3 *= 2;
    }
    p1 *= 2;
  } while(3*inc[s] < size);  
 
  return s > 0 ? --s : 0;
}
 
template<class T>
void shellSort(T a[], long size) {
  long inc, i, j, seq[40];
  int s;
 
  // вычисление последовательности приращений
  s = increment(seq, size);
  while (s >= 0) {
    // сортировка вставками с инкрементами inc[] 
    inc = seq[s--];
 
    for (i = inc; i < size; i++) {
      T temp = a[i];
      for (j = i-inc; (j >= 0) && (a[j] > temp); j -= inc)
        a[j+inc] = a[j];
      a[j+inc] = temp;
    }
  }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2010, 11:06     Соеденить 3 разных программы
Посмотрите здесь:

Как соеденить 2 строки? C++
Открытие файла другой программы из программы.Косяк. C++
обясните структуру программы , что выполнняет каждая строчка программы, зараннее благодарен! C++
Ребята, . пожалуйста! Вот текстовые программы. Вообще в строках не соображаю, прошу о .! программы на С++ C++
Соеденить N равноудаленных точек на суперэллипсе C++
Как сделать, чтобы в окне программы при запуске переменные стояли на разных строках? C++
C++ В матрице выбрать n элементов в разных строках и разных столбцах так, чтобы их сумма была минимальной
C++ Как соеденить две DLL воедино?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru