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

Программа замера скорости - C++

Восстановить пароль Регистрация
 
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
29.03.2013, 00:43     Программа замера скорости #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
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
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <assert.h>
 
#define size 10000
 
using namespace std;
 
static __int64 gCountsPerSecond;
 
 
double max(double a, double b)
{
    if (a>b) return a;
    else return b;
}
 
void InitPerfTimer()
{
bool exists = QueryPerformanceFrequency((LARGE_INTEGER*)&gCountsPerSecond)!=0;
assert(exists);
}
 
double GetPerfTime()
{
__int64 numCounts;
QueryPerformanceCounter((LARGE_INTEGER*)&numCounts);
return (double)numCounts / (double)gCountsPerSecond; 
 
//konvertiruet v sekundi i vozvraschaet rezultat
}
 
 
int main()
{
  
   InitPerfTimer();
   double lastTime = GetPerfTime();
 
// nachalo mesta kuda nuzhno vstavljat kod
   
   int a[size]; 
     for (int i = 0; i < size; i++)
     {
         for (int j = size - 1; j > i; j--)
         {
            if (a[j] < a[j - 1])
             {
                 swap (a[j], a[j - 1]);
             }
         }
     }
        
// konec mesta kuda nuzhno vstavljat kod 
 
   double currTime = GetPerfTime();
   double deltaTime = max(0, currTime - lastTime);
   cout << deltaTime << endl;
   system("PAUSE"); 
   return 0;
}
проблемное место
C++
1
2
3
4
5
6
7
8
9
10
11
   int a[size]; 
     for (int i = 0; i < size; i++)
     {
         for (int j = size - 1; j > i; j--)
         {
            if (a[j] < a[j - 1])
             {
                 swap (a[j], a[j - 1]);
             }
         }
     }
кто знает в чём проблема прошу помочь

Добавлено через 5 часов 39 минут
Эх, жаль что никто не знает((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2013, 00:43     Программа замера скорости
Посмотрите здесь:

вопрос по скорости ком порта C++
оптимизация по скорости sin cos log e C++
Сравнение скорости C++
C++ Фикс скорости Игры
C++ Обмен данными по COM порту на нестандартной скорости
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ijonhson
 Аватар для ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
29.03.2013, 02:45     Программа замера скорости #2
размер статического массива должен быть константой,было бы неплохо и ошибки выложить,те что компилятор выдаёт
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
29.03.2013, 10:55     Программа замера скорости #3
Цитата Сообщение от ijonhson Посмотреть сообщение
размер статического массива должен быть константой
#define за константу уже не считается?

Добавлено через 2 часа 58 минут
mster-doc, для того, чтобы Ваш код собирался, поставьте
C++
1
#define NOMINMAX
перед
C++
1
#include <windows.h>
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
29.03.2013, 17:50  [ТС]     Программа замера скорости #4
Не помогло, вот какие ошибки выдаёт компилятор
http://pixs.ru/showimage/Bezimyanni_3886393_7551559.jpg
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
29.03.2013, 18:02     Программа замера скорости #5
mster-doc, Вы в чем собираете? Я думал в VisualStudio. У меня в 2010 работает.
Приведите итоговый код. Потому что, например, строку 65 я не вижу (а на картинке про нее написано).
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
29.03.2013, 19:46  [ТС]     Программа замера скорости #6
Собираю в Dev-C++
Вот код, я его подчистил от пометок, так что строки сместились
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
#include <iostream>
#include <stdlib.h>
#define NOMINMAX
#include <windows.h>
#include <assert.h>
 
#define size 10000
 
using namespace std;
 
static __int64 gCountsPerSecond;
 
 
double max(double a, double b)
{
    if (a>b) return a;
    else return b;
}
 
void InitPerfTimer()
{
bool exists = QueryPerformanceFrequency((LARGE_INTEGER*)&gCountsPerSecond)!=0;
assert(exists);
}
 
double GetPerfTime()
{
__int64 numCounts;
QueryPerformanceCounter((LARGE_INTEGER*)&numCounts);
return (double)numCounts / (double)gCountsPerSecond; 
}
 
 
int main()
{
  
   InitPerfTimer();
   double lastTime = GetPerfTime();
 
   int a[size];
   for(int i=0;i<size;i++)
      a[i]=size-i;
      
   for(int k=0;k<size-1;k++)
   {
       for(int m=k+1;m<size;m++)
       {
           if(a[k]>a[m])
           {
               int t=a[k];
               a[k]=a[m];
               a[m]=t;
           }
       }
   }    
   
   int a[size]; 
     for (int i = 0; i < size; i++)
     {
         for (int j = size - 1; j > i; j--)
         {
            if (a[j] < a[j - 1])
             {
                 swap (a[j], a[j - 1]);
             }
         }
     }
 
   double currTime = GetPerfTime();
   double deltaTime = max(0, currTime - lastTime);
   cout << deltaTime << endl;
   system("PAUSE"); 
   return 0;
}
А вот ошибки
http://pixs.ru/showimage/Bezimyanni_2872099_7552580.jpg
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
29.03.2013, 23:44     Программа замера скорости #7
mster-doc, ну а ошибки-то есть или только предупреждения?
Уберите 57 строку, т.к. как она дублирует 40ю.
#define NOMINMAX тоже можно видимо убрать (у меня в VS нужно было ставить), ну, или заменить на:
C++
1
2
3
#ifndef NOMINMAX
#define NOMINMAX
#endif
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2013, 04:01     Программа замера скорости
Еще ссылки по теме:

C++ разница в скорости выполнения, итератры
Регулировка скорости вывода символа на экран C++
Регулировка скорости C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
30.03.2013, 04:01  [ТС]     Программа замера скорости #8
точно, спасибо всё заработало
Yandex
Объявления
30.03.2013, 04:01     Программа замера скорости
Ответ Создать тему
Опции темы

Текущее время: 17:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru