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

Комментарии - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ ref class. Как правильно? http://www.cyberforum.ru/cpp-beginners/thread298064.html
ref class - ссылочный класс. Я использовал его не задумываясь в чем его суть. Так вот, что имеется в виду под "ссылочный" ? (а ля public - "открытый"). Для наглядности пример: namespace Name { public ref class First { private: ref class Second
C++ кто напишет программу с коментариями - кину 100р на телефон. Сравнить построчно два файла и распечатать различающиеся строки (из каждого файла) и их номера. http://www.cyberforum.ru/cpp-beginners/thread298061.html
немогу разобраться со строковым типом и задачей с простыми числами. C++
Люди, помогите пожалуйста, немогу разобраться со строковым типом и задачей с простыми числами. На носу сессия, а учиться дальше оочень хочется.. 1. Дана строка символов. Преобразовать ее, заменив в ней каждую из групп стоящих рядом точек одной точкой. 2. Задан текст. Найти длину самого короткого слова. 3. Дан текст. Напечатать те слова, которые удовлетворяют следующему свойству: в слове нет...
Решение ОДУ 2го порядка C++
Здравствуйте нужна ваша помощь ОДУ 2го порядка. y''=5y=0, y(0)=0 y(1)=1; Необходимо решить методом рунге кутта 4го п.т. Я сделал как систему ду. z' = -5y; y'=z; Не получается реализовать
C++ топологическая сортировка http://www.cyberforum.ru/cpp-beginners/thread298048.html
Требуется написать программу которая осущевстляет топологическую сортировку с помощью поиска в глубину na C. задача для студентов мат-фака.Оплату гарантирую. Программа которая осущевстляет поиск в глубину уже есть, т.е. нужно дополнить её. icq:574982593 p.s.последующие предложения возможны (семестр только начался)
C++ Непонятная ошибка!? Есть задача: дан массив и число, переставить числа в массиве таким образом, чтобы слева от некоторой границы шли числа, меньшие или равные заданному числу, а справа от границы - большие или равные заданному числу. написал код: #include <stdio.h> #include <conio.h> #include <iostream.h> using namespace std; int *x,d=10,a; size_t i=0,j,n=10; x=new int(n); while (i<n) подробнее

Показать сообщение отдельно
Kolox
Сообщений: n/a
17.05.2011, 22:14     Комментарии
Добрый вечер.
В интернете нашел код сортировки слиянием.Сам смог разобрать только int main().
Напишите пожалуйста комментарии к int merge и int mergeSort.
P.S. я только начал знакомство с программирование.
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
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
using namespace std;
int merge(int *, int  , int);            
int mergeSort (int *, int , int);      
int main()
{
        setlocale (0,"Russian");
        int *a;                         
        int i;                             
        int n=100;
        a = (int*) malloc ( n*sizeof(int) );
        for ( i = 0; i < n; i++ )              
        {
                *(a+i)=rand()/99;        
                        printf( "%i ", *(a+i) );
        }
        printf("\n");
        printf( "\nОтсортированный массив\n" );    
        *a=mergeSort(a, 0, n-1);
        for ( i=0; i < n; i++ )            
        {
                printf( "%i ", *(a+i) );   
        }
        return 0;
}
 
 
int merge (int *arr, int a, int split, int b)
{
  int pos1 = a;                      
  int pos2 = split + 1;              
  int pos3 = 0;
  int *temp;
  temp = (int*) malloc ( ( b-a+1 ) *sizeof(int) );    
 
  while (pos1 <= split && pos2 <= b)                    
 {
         if ( *(arr + pos1) < *(arr + pos2) )       
         {
                  *( temp+pos3 ) = *( arr+pos1 ); 
                  pos3++;             
                  pos1++;             
         }
         else
         {
                *( temp+pos3 ) = *( arr+pos2 );    
                pos3++;
                pos2++;
         }
 }
 
  while ( pos2 <= b ) 
  {
                *( temp+pos3 ) = *( arr+pos2 );
                pos3++;
                pos2++;
  }
 
  while ( pos1 <= split ) 
  {
                *( temp+pos3 ) = *( arr+pos1 );
                pos3++;
                pos1++;
  }
 
  for ( pos3 = 0; pos3 < b-a+1; pos3++ ) *( arr + a + pos3) = *( temp + pos3 );       
free(temp);    
return *arr;    
}
 
int mergeSort(int *arr, int a, int b) 
{
  int split;
  if (a < b)
  {
        split = (a + b)/2;
        mergeSort (arr, a, split);
        mergeSort (arr, split+1, b);
        merge (arr, a, split, b);
  }
return *arr;
}
Надеюсь на помощь.

Добавлено через 1 час 42 минуты
Помогите пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru