Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2015, 00:29   #21
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Так что вообще нет никаких способов определить нормально время?
ты издеваешься, да?
тогда да, для тебя способов нет.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 21.11.2015, 00:38   #22
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Да не издеваюсь,я не понимаю,почему даже когда я ввожу очень большие размеры массивов,все равно выводит нули,я уже по 50000 вводила , программа выполнялась секунд 20,а там дальше нули. А как пользоваться QueryPerformanceFrequency я вообще без понятия.Я в отчаянии

Вот скрин работы программы,здесь ввела значения по 45-50 000
а второй и третий циклы не работают
Код:
for(int i=0,j=0;i<3;) //проверяем сортировку выбором
{
	double start_time =  clock(); 
	choicesSort(arr[j]);
	double end_time = clock(); 
	double search_time = (end_time - start_time); 
	time[i]=search_time/1000;
        i++;
		j++; 
}


for(int i=3,j=0;i<6;)//проверяем сортировку пузырьком
{
	double start_time =  clock(); 
	bubbleSort(arr[j]);
	double end_time = clock(); 
	double search_time = (end_time - start_time); 
	time[i]=search_time/1000;
	i++;
	j++; 
}
for(int i=6,j=0;i<9;)//проверяем сортировку вставками
{
	double start_time =  clock(); 
	insertionSort(arr[j]);
	double end_time = clock(); 
    double search_time = (end_time - start_time); 
	time[i]=search_time/1000;
	i++;
	j++; 
}
Изображения
Тип файла: jpg Безымянный.JPG (26.5 Кб, 59 просмотров)

Последний раз редактировалось Stilet; 21.11.2015 в 09:40.
Вероника99 вне форума Ответить с цитированием
Старый 21.11.2015, 00:45   #23
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
А как пользоваться QueryPerformanceFrequency я вообще без понятия.Я в отчаянии
Попросить исходник религия не позволяет? или половая ориентация?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 21.11.2015, 00:47   #24
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А функция сортировки вообще сортирует или только кажется?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.11.2015, 00:47   #25
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Скиньте пожалуйста,все мне позволяет.
Аватар,сортирует, есть вывод в отдельный файл,там все отсортировано. Самое непонятное то, что когда я в первый цикл вставляю вызов сортировки,который применен во втором или третьем цикле,оно прекрасно выводит время и для этих сортировок,но только из первого цикла.

Последний раз редактировалось Вероника99; 21.11.2015 в 00:50.
Вероника99 вне форума Ответить с цитированием
Старый 21.11.2015, 00:53   #26
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Вот код, который вычисляет время в микросекундах:
Код:
// Таймер замера времени выполнения алгоритма.
// Глобальные переменные для замера временных интервалов.
LARGE_INTEGER freq, time1, time2;
void Timer(bool b)
{
  double span;
  if(b)
  {
  // Снять показания таймера
    QueryPerformanceCounter(&time2);
    time2.QuadPart -= time1.QuadPart;
    span = (double) time2.QuadPart / freq.QuadPart;
    span = span * pow(10,9);
    cout << "Время выполнения: " << span << " мкс\n";
  }
  else
  {
  // Инициировать таймер
    QueryPerformanceFrequency(&freq);
    QueryPerformanceCounter(&time1);
  }
}
Использование
Код:
// Файл .h
// Таймер замера времени выполнения алгоритма.
enum sign{START, STOP};
void Timer(bool b);

// Файл .cpp
  Timer(START); BubbleSort(sarr, x); Timer(STOP);
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 21.11.2015, 01:13   #27
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Вроде сделала,но смутила резкая разница между первыми тремя выводами и остальными,наверное что-то не так? я отдельно добавила функцию Timer,все как в Вашем примере
Код:
 double time[9];
 for(int i=0,j=0;i<3,j<3;) 
 {
	 Timer(START);
 	choicesSort(arr[j]);
	time[i]=Timer(STOP);
	i++;
	j++;
 }

  for(int i=3,j=0;i<6,j<3;) 
 {
	 Timer(START);
 	bubbleSort(arr[j]);
	time[i]=Timer(STOP);
	i++;
	j++;
 }
    for(int i=6,j=0;i<9,j<3;) 
 {
	 Timer(START);
 	insertionSort(arr[j]);
	time[i]=Timer(STOP);
	i++;
	j++;
 }
Изображения
Тип файла: jpg 2.JPG (21.4 Кб, 30 просмотров)
Вероника99 вне форума Ответить с цитированием
Старый 21.11.2015, 01:21   #28
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Массив с данными небось на сортировку передается уже отсортированный в те блоки где время маленькое?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.11.2015, 01:31   #29
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Кстати,да!Спасибо,что заметили,я и не подумала что-то об этом,тот первый цикл сортирует,а второй и третий циклы имеют дело уже с отсортированными данными,эхх,возможно из-за этого и моем том варианте выдавало все время нули,т.к сортировать было нечего
Изображения
Тип файла: jpg 4.JPG (15.3 Кб, 30 просмотров)
Вероника99 вне форума Ответить с цитированием
Старый 21.11.2015, 03:01   #30
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Скиньте пожалуйста,все мне позволяет.
язык программирования какой?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формула для подсчета рабочего времени при ночной смены. sakramann Microsoft Office Excel 20 16.10.2013 15:50
Функция для подсчета roulis2844sasha Помощь студентам 2 17.11.2011 10:13
Функция подсчета md5 файлов tumanovalex C# (си шарп) 3 08.06.2011 23:22
функция для подсчета количества символов в строке типа std::string a Артэс Общие вопросы C/C++ 3 06.07.2009 17:43
функция подсчета суммы элементов после первого отрицательного nikzntu Общие вопросы C/C++ 0 13.01.2009 21:40