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

Сортировка с слиянием - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск слов из текста. http://www.cyberforum.ru/cpp-beginners/thread543012.html
Помогите пожалуйста с программой. Нужно написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов. Файл открывается через: ifstream fin("text.txt, ios::in). Заранее большое спасибо.
C++ Написать комментарии (классы) Помогите написать комментарии) //20. Сформувати дві черги по n елементів, зчитавши дані. //Об'єднати черги в одну, в якій елементи початкових черг чергуються, //починаючи з першого елементу першої черги. //Вивести на екран початкові та вихідну черги. #include <iostream> using namespace std; #include <math.h> http://www.cyberforum.ru/cpp-beginners/thread543005.html
Помогите с игрой! C++
Вот сделал игру "Угадай число" если ввести не число а букву то консоль "взбесится" и начнёт бесконечно просить угадать число скажите что нужно сделать чтобы ну как бы консоль небесилась, а ошибку там выдовала или заного запускалась #include <conio.h> #include <iostream> #include <cmath> using namespace std; int main(int argc, char *argv) {
2-x числа C++
Всем привет! Я нуб в С++ и мне нужна помощ! А задача такова: Написать программу, которая считывает с клавиатуры текст и выводит на экран только строки, содержащие двузначные числа. Вот взял похожую прогу, может из нее получится что подредактировать и получить мою, задача этой проги: Написать программу, которая считывает с клавиатуры текст и выводит на экран толь¬ко предложения, содержащие...
C++ Найти количество участков, на которых монотонно убывают элементы динамического массива http://www.cyberforum.ru/cpp-beginners/thread542983.html
Дан массив размера N.Найти количество участков, на которых его элементы монотонно убывают.
C++ Рассчитать энтропию Вообщем дан файл в котором 256 строчек с цифрами след. формата: 0.0 5.004132579488561E-6 1.0842287255558548E-5 5.312720755223689E-4 1.6680441931628536E-6 5.97993843248883E-4 0.056200578978139445 0.011698827948747674 подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
09.04.2012, 10:41     Сортировка с слиянием
Потрясающе! Хитро работает, я б не догадался. Правда дополнительный массив использует, к сожалению. Сам додумал?
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
int counter;//счётчик перестановок
int a[100];
void merge(int,int,int);
void merge_sort(int low,int high)
{
 int mid;
 if(low<high)
 {
  counter=0;
  mid=(low+high)/2;
  merge_sort(low,mid);
  merge_sort(mid+1,high);
  merge(low,mid,high);
 }
}
void merge(int low,int mid,int high)
{
 int h,i,j,b[10000],k;
 h=low;
 i=low;
 j=mid+1;
 
 while((h<=mid)&&(j<=high))
 {
  if(a[h]<=a[j])
  {
   b[i]=a[h];
   counter++;
   h++;
  }
  else
  {
   b[i]=a[j];
   counter++;
   j++;
  }
  i++;
 }
 if(h>mid)
 {
  for(k=j;k<=high;k++)
  {
   b[i]=a[k];
   counter++;
   i++;
  }
 }
 else
 {
  for(k=h;k<=mid;k++)
  {
   b[i]=a[k];
   counter++;
   i++;
  }
 }
 for(k=low;k<=high;k++) {a[k]=b[k];counter++;}
}
или лучше так
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
int a[100];
void merge(int,int,int);
void merge_sort(int low,int high)
{
 int mid;
 if(low<high)
 {
  counter=0;
  mid=(low+high)/2;
  merge_sort(low,mid);
  merge_sort(mid+1,high);
  merge(low,mid,high);
 }
}
void merge(int low,int mid,int high)
{
 int h,i,j,b[10000],k;
 h=low;
 i=low;
 j=mid+1;
 
 while((h<=mid)&&(j<=high))
 {
  if(a[h]<=a[j])
  {
   b[i]=a[h];
   h++;
  }
  else
  {
   b[i]=a[j];
   j++;
  }
  i++;
 }
 if(h>mid)
 {
  for(k=j;k<=high;k++)
  {
   b[i]=a[k];
   i++;
  }
 }
 else
 {
  for(k=h;k<=mid;k++)
  {
   b[i]=a[k];
   i++;
  }
 }
 for(k=low;k<=high;k++) {a[k]=b[k];}
 counter+=2*(high-low);
}
 
Текущее время: 21:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru