Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Время выполнения процедуры 
V
    Опции темы
VanHelsing
Дата 17.1.2010, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ХОЧУ ВСЕ ЗНАТЬ!!!
**
Награды: 1



Профиль
Группа: Участник
Сообщений: 288
Регистрация: 3.1.2008
Где: Екатеринбург

Репутация: нет
Всего: 6



Необходимо измерить время выполнения процедуры, производящей сортировку массива. Что бы я не делал, но функция возвращает 0.
Код

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10

void Selection(int *a, int size) { // Сортировка выбором
     int temp, i, j;     
     for (i=0; i < size; i++) {
         int min = i;
         for (j = i+1; j <= size; j++) {
             if (a[j] < a[min]) min = j;}
             temp = a[i];
             a[i] = a[min];
             a[min] = temp;                  
     }
 }  
}                   
//---------------------------------------------------  
void main()
{
  int a[N], i, j, x, k;
  double dift;
  clock_t t1, t2;   
  srand(time(NULL));    
  for (i = 0; i < N; i++){
    a[i] = rand()%100;
    printf("%d\n", a[i]);      
  } 
  t1 = clock();   
  Selection(&a[0], N);
  t2 = clock();
  dift = t2 - t1;  
  printf("\n", "  ");
  for (i = 0; i < N; i++)
    printf("%d\n", a[i]);
  printf("\n", "  ");  
  printf("%f\n", dift);  
  getch();
}


Я так понимаю, что процедура выполняется быстрее чем за секунду, а как посчитать в миллисекундах. 
P.S. попробовал увеличить количество элементов до 100, все равно получается 0.
Попробовал через GetTickCount и все равно результат нулевой.
Код

void main()
{
  int a[N], i, j, x, k;    
  srand(time(NULL));    
  for (i = 0; i < N; i++){
    a[i] = rand()%100;
    printf("%d\n", a[i]);      
  } 
  int start = GetTickCount();
  printf("start = %d", start);  
  Selection(&a[0], N);
  printf("\n", "  ");     
  printf("\n", "  ");
  for (i = 0; i < N; i++)
    printf("%d\n", a[i]);  
  int end = GetTickCount();
  printf("end = %d", end);   
  getch();
}


Это сообщение отредактировал(а) VanHelsing - 17.1.2010, 11:11


--------------------
PM MAIL   Вверх
Леопольд
Дата 17.1.2010, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



Цитата(VanHelsing @  17.1.2010,  09:30 Найти цитируемый пост)
Необходимо измерить время выполнения процедуры, производящей сортировку массива.

Есть такая штука, называется "профайлер".

Это сообщение отредактировал(а) Леопольд - 17.1.2010, 13:31


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
VanHelsing
Дата 17.1.2010, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ХОЧУ ВСЕ ЗНАТЬ!!!
**
Награды: 1



Профиль
Группа: Участник
Сообщений: 288
Регистрация: 3.1.2008
Где: Екатеринбург

Репутация: нет
Всего: 6



Мне просто необходимо сводную таблицу скорости работы различных алгоритмов сортировки. А С++ я вообще плохо знаком.


--------------------
PM MAIL   Вверх
zim22
Дата 17.1.2010, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(VanHelsing @  17.1.2010,  18:15 Найти цитируемый пост)
А С++ я вообще плохо знаком.

профайлер - это стороннее приложение


--------------------
PM MAIL   Вверх
VanHelsing
Дата 17.1.2010, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ХОЧУ ВСЕ ЗНАТЬ!!!
**
Награды: 1



Профиль
Группа: Участник
Сообщений: 288
Регистрация: 3.1.2008
Где: Екатеринбург

Репутация: нет
Всего: 6



Подскажите пожалуйста это сделать. А что в данном случае является сторонним приложением?


--------------------
PM MAIL   Вверх
comcon1
Дата 17.1.2010, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17





--------------------
PM MAIL   Вверх
bsa
Дата 17.1.2010, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(VanHelsing @  17.1.2010,  19:35 Найти цитируемый пост)
А что в данном случае является сторонним приложением?
notepad.exe - стороннее по отношению к Counter Strike приложение. Какие еще вопросы?
Так же и профайлер - это специальная программа для определения "узких" мест программы (по времени выполнения).

Это сообщение отредактировал(а) bsa - 17.1.2010, 21:22
PM   Вверх
VanHelsing
Дата 17.1.2010, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ХОЧУ ВСЕ ЗНАТЬ!!!
**
Награды: 1



Профиль
Группа: Участник
Сообщений: 288
Регистрация: 3.1.2008
Где: Екатеринбург

Репутация: нет
Всего: 6



Цитата

notepad.exe - стороннее по отношению к Counter Strike приложение. Какие еще вопросы?

Понял.
А вообще проблему решил. Конечно я поступал глупо, создавал массив из 10 элементов. Поэтому я увеличил количество элементов и сразу значения стали не нулевыми( для чистоты подсчетов я брал N = 1000, 10000, 20000).
P.S. Всем спасибо за помощь.


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.