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

Подскажите что не в моем коде(Сортировка слиянием) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Препроцессорная обработка http://www.cyberforum.ru/cpp-beginners/thread539417.html
Столкнулась с пока непреодолимой для меня задачей, кто знает как такое решить, помогите новичку, буду очень благодарна:cry: :) постановка задачи: Написать программу, которая: • Выводит текст на экран дисплея; • Определяет порядковый номер заданного слова в каждом предложении текста и записывает в файл; По нажатию произвольной клавиши поочередно выделяет каждое предложение текста, а в...
C++ Скриншот раб стола + видео Как сделать скриншот рабочего стола и чтоб видео на нем было б изображено черным квадратом? http://www.cyberforum.ru/cpp-beginners/thread539411.html
C++ Ребята подкажи что за библиотека...atlimage.h
Дайте определение или какие функции выполняет atlimage.h
C++ Шаблон класса.
Приведите пожалуйста пример какого нибудь простого класса с меню. Чтобы пользователь сам вводил, а не компьютер заполнял.
C++ Объединение нескольких массивов в одну область памяти Union и прямое обращение по имени http://www.cyberforum.ru/cpp-beginners/thread539406.html
Нужно чтобы массив s пересекался в памяти с массивами u1,u2,u3 и чтобы к ним был прямой доступ по имени. Первое я реализовал: union ons { char s; struct ghs { char u1; char u2; char u3; } x; } w; Но в данном случае для доступа к массивам нужна нужно обращаться так:
C++ Рекурсивная процедура вычисления n-го числа Фибоначчи Добрый день. Подскажите, пожалуйста, алгоритм рекурсивной процедуры вычисления n-го числа Фибоначчи. Только начал изучать процедуры и рекурсии, поэтому задача вызвала затруднения. подробнее

Показать сообщение отдельно
ShookTrooper
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 3
05.04.2012, 03:36     Подскажите что не в моем коде(Сортировка слиянием)
Я не очень понимаю где именно неверно в моем коде. Хотел рассортировать массив методом слияния. Если найдете заранее спасибо!

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
int* getFirstHalf(int* array, int n){
    int size=n/2+n%2;
   int* a=new int[size];
   for (char i=0; i<size;i++)
    a[i]=array[i];
   return a;
}
 
int* getSecondHalf(int* array, int n){
   int size=n/2;
   int* b=new int[size];
   for (char i=0; i<size; i++)
      b[i]=array[i+size];
   return b; 
}
 
 
 
int* merge(int* a, int* b, int n){
    int* c = new int[n];
   int imax=sizeof(a)/4;
   int jmax=sizeof(b)/4;
   int i=0;
   int j=0;
   int k=0;
   while (i<=n/2+n%2 && j<=n/2)
   {
    if (a[i]<b[j]){
        c[k]=a[i];
        i++;
        k++;
    }
        else{
        c[k]=b[j];
        k++;
        j++;
    }
    if (i>=n/2+n%2)
      {
        for (;j<n/2;j++)
         {
            c[k]=b[j];
            k++;
         }
      }
      if (j>=n/2)
      {
        for (;i<n/2+n%2;i++){
            c[k]=a[i];
            k++;
         }
 
      }
 
   }
    return c;
}
 
 
int* merge_sort(int* array, int n){
    if (n==1) return array;
   int* a = getFirstHalf(array,n);
   int* b = getSecondHalf(array,n);
    merge_sort(a, n/2);
   merge_sort(b, n/2 );
   array=merge(a, b, n);
}
 
 
 
int main(){
   const n=3;
   int A[n]={4,2,1};
 
 
   printf("before: \n");
   for (char i=0; i<n; i++)
    cout<<A[i]<<"  ";
   merge_sort(A, n);
   printf("\nafter:\n");
   for (char i=0; i<n; i++)
    cout<<A[i]<<"  ";
  
    getch(); return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru