Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/20: Рейтинг темы: голосов - 20, средняя оценка - 4.50
IrinaVl
1

как узнать время работы программы решения алгоритма

15.05.2012, 00:50. Показов 3869. Ответов 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
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
#include <iostream.h>
#include <conio.h>
#include <windows.h>
#include<iomanip.h>
    
char NEWT[256];
char*RUS(char*TEXT) {
CharToOem(TEXT,NEWT);
return NEWT;}
 
int v;
int main()
{   int i,j;
   int infinity=1000;                 
                                        
   int VES[100][100];                       
 
   int x[100];                            
                                         
   
   int DlinaPuti[100];                   
 
   int PredVertex[100];                   
   int VERTEX;
   int p;                         
cout<<RUS("Ввести количество вершин в графе ")<<endl;
cin>>VERTEX;p= VERTEX;                   
cout<<RUS("Заполните матрицу весов графа ")<<endl;      
cout<<setw(4);
for (i=0;i<VERTEX;i++)
cout<<" x "<<i+1;
cout<<endl;
 
for(i=0;i<VERTEX;i++)
{cout<<"X"<<i+1<<'|';
for(j=0;j<VERTEX;j++)
cin>>VES[i][j];}
 
                                       
   int start;                           
   int end;                             
N: cout<<RUS("Введите стартовую вершину: ");   
   cin>>start;
   if (start>(p-1) && start<0) {cout<<RUS("Нет такой вершины повторите ввод...)"<<endl; goto N; } 
   start=start-1;                      
   for (int prosto=0;prosto<VERTEX;prosto++)
   {end=prosto;                         
   if (end==start) continue;         
   else
   {
 
                                      
   int u;                               
   for (u=0;u<p;u++)
   {
       DlinaPuti[u]=infinity;                  
      x[u]=0;                           
   }
   PredVertex[start]=0;                   
   DlinaPuti[start]=0;                    
   x[start]=1;                             
   v=start;                               
   
   while(1)
   {
                                       
      for(u=0;u<p;u++)
      {
         if(VES[v][u]==0)continue;      
         if(x[u]==0 && DlinaPuti[u]>DlinaPuti[v]+VES[v][u]) 
                                       
         {
            DlinaPuti[u]=DlinaPuti[v]+VES[v][u];           
           PredVertex[u]=v;                    
         }
      }
 
                                        
      int w=infinity;                  
      v=-1;                            
                                        
      for(u=0;u<p;u++)                
      {
         if(x[u]==0 && DlinaPuti[u]<w)          
         {
            v=u;                         
            w= DlinaPuti[u];
         }
      }
      if(v==-1)
      {
         cout<<RUS("Нет пути из вершины ")<<start+1;cout<<RUS(" в вершину ")<<end+1<<"."<<endl;
         break;
      }
      if(v==end)                           
      {                                 
         cout<<RUS("Кратчайший путь из вершины ")<<start+1;cout<<RUS(" в вершину ")<<end+1<<":";
       u=end;
       while(u!=start)
         {
            cout<<" "<<u+1;
            u=PredVertex[u];
         }
         cout<<" "<<start+1<<RUS(". Длина пути - ")<< DlinaPuti[end];cout<<endl;
       break;
      }
      x[v]=1;
   }}}
   
return 0;}

Заранее спасибо!

Добавлено через 22 минуты
Использую такой подход, но ничего не выводит...выводит или 0,0000 или 0,00100.

C++
1
2
3
4
clock_t start, end;
    start=clock();
end=clock();
    printf(" %.4f second(s)\n",((double) end - start)/((double) CLOCKS_PER_SEC));

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2012, 00:50
Ответы с готовыми решениями:

Время работы программы (алгоритма)
не получается посчитать время работы алгоритма программы! #include &lt;iostream&gt; using std::cout;...

Как можна подсчитать время работы алгоритма (части программы).
Мне нужно подсчитать время виполнения алгоритмов сортировки масивов! Наведите пожалуста функции а...

Как узнать время работы программы в минутах которой мы пользовались?
Как узнать время работы программы в минутах которой мы пользовались на C# ?

узнать время выполнения работы программы. Функция sleep()
Дело в следующем. Есть одна простенькая вычислительная программка. Я хочу знать время за которое...

1
390 / 282 / 53
Регистрация: 26.12.2009
Сообщений: 875
15.05.2012, 00:54 2
IrinaVl, пыц
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2012, 00:54

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как узнать время выполнения алгоритма
Пожалуйста, подскажите, что нужно сделать, чтобы узнать за какое время выполняется программа...

Как узнать время выполнения алгоритма
Мне нужно сравнить несколько алгоритмов сортировки. Но таким способом как у меня, дает очень...

Как вычислить время работы алгоритма на C#?

Как найти время работы алгоритма?
Пусть время работы алгоритма Т(N) = O(f(N)). Если X элементов обрабатываются за Y мсек., то во...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.