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

Естественное двухпутевое слияние - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массивы. Найти минимальное значение элементов массива http://www.cyberforum.ru/cpp-beginners/thread788789.html
Задание на масив на С++ Найти минимальное значение элементов массива. Вывести на дисплей полученное значение.После этого изменить исходный мас-сив, выполнив указанную операцию для всех его...
C++ Перенос текста в файл без комментариев Дело такое, нужно написать программу, которая из одного файла, в котором написана рабочая программа с комментариями, переносит текст в другой текстовый файл, но уже без комментариев. Хотел сделать,... http://www.cyberforum.ru/cpp-beginners/thread788775.html
C++ Как правильно использовать несколько файлов
Доброе время суток, появилась необходимость разбить программу на несколько файлов в которых выполняются какие то действия. раньше такого не делал и не нашел четкого описания как это сделать. ...
Произведение массива до первого отрицательного числа C++
Написать программу, в которой массив генерируется случайными числами от -5 до 5. Вычислить произведение элементов массива до первого отрицательного.
C++ Вывести индексы и значение массива http://www.cyberforum.ru/cpp-beginners/thread788742.html
Написать программу, которая проверяет, есть ли во введенном с клавиатуры массиве элементы с одинаковым значением. Вывести их индексы и значения. Затем сделать то же с массивом генерируется...
C++ Начало ООП. Классы Здравствуйте.Читал про ссылки массивов на указатели, и указателей на массивы.Не могу понять как в этой программе как функции ссылаются на объект nds, вот эти строки непонятны const int MAX =... подробнее

Показать сообщение отдельно
nekto_igor
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 5
12.05.2013, 23:40  [ТС]
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
 int deq::GetValue(int n)
{
  Value *p=Head;
  for(int i=1; i<n; i++)
   p = p->Next;
 
  return p->val;
}
 
void deq::SetValue(int n, int val)
{
  Value *p=Head;
  for(int i=1; i<n; i++)
  {
   if (!p->Next)
    Add_Last(0);
   p = p->Next;
  }
  p->val = val;
}
 void deq::Sort(int n)
{
    // deq r,r1;
    int s,f,d,i,j,g,k,p;
   // n=10; //
    s = 1;
    do
    {
        s=1-s; 
        d=1; 
        f=1; 
 
        if (s == 0)
        {
            i = 1; 
            j = n; 
            k = n+1; 
            g = 2*n; 
        }
        else
        {
            i = n+1; 
            j = 2*n; 
            k = 1; 
            g = n; 
        }
 
        while(i!=j)//
        {
           // if(K[i]<K[j])
            if (GetValue(i) > GetValue(j))
            {
               // R[k] = R[j];
                SetValue(k, GetValue(j));
                k = k+d; 
                j = j-1; 
 
               // if (!(K[j+1]<=K[j]))
                if (GetValue(j+1) <= GetValue(j))
                {
                }
                else
                {
                    do
                    {
                       // R[k]=R[i];
                        SetValue(k, GetValue(i));
                        k=k+d; counter++;
                        i=i+1; counter++;
                    }
                   // while(!K[i-1]>=K[i]);
                    while(GetValue(i-1) < GetValue(i));
 
                    f = 0; 
                    d = -d; 
                    p = k; 
                    k = g; 
                    g = p; 
                }
            }
            else
            {
               // R[k]=R[i];
                SetValue(k, GetValue(i));
                k=k+d; counter++;
                i=i+1; counter++;
               // if(K[i-1]<=K[i])
                if (GetValue(i-1) <= GetValue(i))
                {
                }
                else
                {
                      do
                       {
                         // R[k] = R[j];
                          SetValue(k, GetValue(j));
                          k = k+d; counter++;
                          j = j-1; counter++;
                       }
                         // while(K[j+1]>=K[j]);
                         while (GetValue(j+1) < GetValue(j));
                    f=0; 
                    d=-d; 
                    p=k; 
                    k=g; 
                    g=p; 
                }
            }
        }
        //R[k]=R[i];
        SetValue(k, GetValue(i));
    }   while (f!=1);
    
       if(s==0)
     {
    for(int z=1; z<=n; z++)
   // R[z] = R[z+n];
   SetValue(z, GetValue(z+n));
}[CPP]
[/CPP]

Добавлено через 59 секунд
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
int deq::GetValue(int n)
{
  Value *p=Head;
  for(int i=1; i<n; i++)
   p = p->Next;
 
  return p->val;
}
 
void deq::SetValue(int n, int val)
{
  Value *p=Head;
  for(int i=1; i<n; i++)
  {
   if (!p->Next)
    Add_Last(0);
   p = p->Next;
  }
  p->val = val;
}
 void deq::Sort(int n)
{
    // deq r,r1;
    int s,f,d,i,j,g,k,p;
   // n=10; //
    s = 1;
    do
    {
        s=1-s; 
        d=1; 
        f=1; 
 
        if (s == 0)
        {
            i = 1; 
            j = n; 
            k = n+1; 
            g = 2*n; 
        }
        else
        {
            i = n+1; 
            j = 2*n; 
            k = 1; 
            g = n; 
        }
 
        while(i!=j)//
        {
           // if(K[i]<K[j])
            if (GetValue(i) > GetValue(j))
            {
               // R[k] = R[j];
                SetValue(k, GetValue(j));
                k = k+d; 
                j = j-1; 
 
               // if (!(K[j+1]<=K[j]))
                if (GetValue(j+1) <= GetValue(j))
                {
                }
                else
                {
                    do
                    {
                       // R[k]=R[i];
                        SetValue(k, GetValue(i));
                        k=k+d; counter++;
                        i=i+1; counter++;
                    }
                   // while(!K[i-1]>=K[i]);
                    while(GetValue(i-1) < GetValue(i));
 
                    f = 0; 
                    d = -d; 
                    p = k; 
                    k = g; 
                    g = p; 
                }
            }
            else
            {
               // R[k]=R[i];
                SetValue(k, GetValue(i));
                k=k+d; counter++;
                i=i+1; counter++;
               // if(K[i-1]<=K[i])
                if (GetValue(i-1) <= GetValue(i))
                {
                }
                else
                {
                      do
                       {
                         // R[k] = R[j];
                          SetValue(k, GetValue(j));
                          k = k+d; counter++;
                          j = j-1; counter++;
                       }
                         // while(K[j+1]>=K[j]);
                         while (GetValue(j+1) < GetValue(j));
                    f=0; 
                    d=-d; 
                    p=k; 
                    k=g; 
                    g=p; 
                }
            }
        }
        //R[k]=R[i];
        SetValue(k, GetValue(i));
    }   while (f!=1);
    
       if(s==0)
     {
    for(int z=1; z<=n; z++)
   // R[z] = R[z+n];
   SetValue(z, GetValue(z+n));
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru