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

Парадокс - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка Run-Time Check Failure #3 - The variable 'chcount' is being used without being initialized. http://www.cyberforum.ru/cpp-beginners/thread852516.html
Run-Time Check Failure #3 - The variable 'chcount' is being used without being initialized. Что за ошибка?
C++ Статическая линковка Добрый вечер. Прочитал что бы екзешка запускалась на любом компьютере нужно сделать статическую линковку. То есть прикрепить к екзешнику необходимые библиотеки. Но не смог нагуглить как именно это сделать (microsoft visual studio 2010). Помогите пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread852491.html
Слова ONE TWO и тд заменить цифрами 1 2 итд C++
От 0 до 9. И вообщем то у меня почти все написано, если бы не одно большое НО - по заданию эту программу необходимо реализовать при помощи вложенных структур (структура в структуре), но мне не понятно, куда в принципе тут можно прицепить вложенные структуры? Для чего они тут вообще нужны? Это как если бы в "хелло ворде" попросили использовать классы. Вот скажите куда вообще тут можно пристроить...
C++ Структуры
Добрый вечер! Задался вот таким вопросом: у меня есть структура struct data{ string title; int col; double srb; }; и функция
C++ Как (можно ли) инициализировать переменную в структуре? http://www.cyberforum.ru/cpp-beginners/thread852471.html
Как пример struct cifri { char one="ONE"; }; Почему так нельзя и как можно?
C++ с++: массивы, указатели и функции Приветствую вас программисты, на вас одна надежда.. Не могу разобраться, как изменить.. делаю в code::blocks Первая и вторая часть задания выполнена в нижеприведенном коде, нужно произвести изменения во второй. 1часть: 1. В диалоговом режиме ввести в строковый массив с именем UIR-151 (или UIR-152) свои фамилию имя, отчество. 2. Вывести размерность полученного массива. 3. Вывести... подробнее

Показать сообщение отдельно
alig007
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 28
30.04.2013, 00:38     Парадокс
Назрел вопрос. Релизовывал сортировку слиянием, далее при тестировании, точнее при замерах времени работы, наткнулся на удивительную вещь:

вот код мейна номер один:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void main()
{
    const int N = 200000;
    int A[N];
 
    int F;
 
    for (int i = N-1; i>= 0; i--)
        A[i] = rand();
 
    int start = GetTickCount();
 
    merge_sort (A, 1, N);
 
    int end = GetTickCount();
 
    cout<<end - start;
 
    _getch();
}
время работы: см. изображение 1.

после чего сделал следующее:
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 "head.h"
 
void main()
{
    const int N = 200000;
    int A[N];
 
    int F;
 
    for (int i = N-1; i>= 0; i--)
        A[i] = rand();
 
    cout<<1<<endl;
 
    int start = GetTickCount();
 
    merge_sort (A, 1, N);
 
    int end = GetTickCount();
 
    cout<<end - start;
 
    _getch();
}
время работы см. картинку 2. Причем не обязательно cout, вообще, добавление любого действия, перед сортировкой дает такой результат.
Вопрос: КАК ???
Вот сама сортировка, как понимаю дело в ней, поскольку все остальное ведет себя нормально:
Кликните здесь для просмотра всего текста
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
void merge (int *Array, int p, int q, int r)
{
    int i = p - 1, j = q;
 
    int *result = new int[r - p + 1];
 
    int k = 0;
 
    while(i < q && j < r)
        if (Array[i] < Array[j])
            result[k++] = Array[i++];
        else
            result[k++] = Array[j++];
 
    while (i < q)
        result[k++] = Array[i++];
    while (j < r)
        result[k++] = Array[j++];
 
    for (int i = 0, j = p - 1 ; i<r - p + 1; i++, j++)
        Array[j] = result[i];
 
    delete[] result;
}
 
void merge_sort (int *Array, int Start, int End)
{
    if (Start < End)
    {
        int Split = (Start + End)/2;
        merge_sort (Array, Start, Split);
        merge_sort (Array, Split + 1, End);
        merge (Array, Start, Split, End);
    }
}
Миниатюры
Парадокс   Парадокс  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru