Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск

Кто сейчас на форуме
Сейчас посетителей на форуме: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1

Нет

[ Посмотреть весь список ]


Больше всего посетителей (7) здесь было Сб Июн 17, 2017 3:57 pm
Самые активные пользователи за неделю


Вопрос по занятиям

Предыдущая тема Следующая тема Перейти вниз

Вопрос по занятиям

Сообщение автор Дмитрий в Ср Мар 15, 2017 5:27 pm

Ярослав, Здравствуйте!!!

У меня вопрос. Я хотел написать в "личку", но не получилось((
Так как я почти не бываю на практических занятиях, то всю информацию изучаю по лекциям или книгам.

11.03 прошло 11 занятие. Тема занятия по лекциям: Рекурсия, быстрая сортировка.

В MyStat написано что Вы еще давали тему: Цвет и рисование.
А 04.03 Вы еще давали тему: Время работы программы. Перечисления.

Где я могу прочитать про эти темы?

Спасибо!

Дмитрий

Posts : 10
Join date : 2017-01-23

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопрос по занятиям

Сообщение автор Ярослав в Чт Мар 16, 2017 3:11 pm

На этой неделе я задал субботней группе Лабаротарную работу №1. Тема «Рисование и цвет» — это обзор этой лабы, я постарался на форуме написать всё то же самое.

Тема «Перечисления» ещё встретится в курсе, позже.

Измерение времени работы программы
Мы проходили разные алгоритмы сортировки, появился закономерный вопрос: какой алгоритм действует быстрее? Мы можем поставить эксперимент, замерив время работы разных алгоритмов.

Вообще, чтобы измерить, сколько времени исполнялась часть программы, нужно использовать функцию clock():
Код:
clock_t clock();
Функция clock() возвращает, сколько истекло времени с момента запуска операционной системы. Когда вы включаете компьютер и операционная система загружается, время равно нулю. Функция clock() гарантирует, что точность измерения будет детальнее, чем 1 секунда, но не уточняет, сколько именно. Тип переменной clock_t позволяет хранить один момент измерения времени.

План такой:
• Засекаем текущее время перед алгоритмом сортировки
• Вызываем функцию сортировки
• Засекаем текущее время после его окончания
• Разница будет говорить, сколько времени выполнялась функция сортировки

Код:
const int SIZE = 10000; // время полезно мерить на большом массиве: из 10 000 элементов
int a[SIZE];

/* ... заполняем массив случайными числами ... */

// замеряем время работы алгоритма сортировки:
clock_t begin = clock();
insertSort (a, SIZE);
clock_t end = clock ();

cout << "insertSort took " << float (end - begin) / CLOCKS_PER_SEC << " sec" << endl;

Если залезть во внутренности функции clock(), можно узнать, что clock_t — это другое имя для целочисленного типа, а константа CLOCKS_PER_SEC равна 1000. Это значит, что clock() измеряет время в целом числе миллисекунд (по крайней мере в нашем компиляторе; в других компиляторах и операционных системах может быть иначе). Чтобы выразить разницу во времени в секундах, нужно поделить (end - begin) на 1000. Если не добавить вначале преобразование типа (float), то вычисление будет целочисленным делением, и будет давать 0 вместо 0.235.

Мы в классе ставили эксперимент по измерению времени работы 4 алгоритмов сортировки:
• Сортировка выбором
• Сортировка пузырьком
• Шейкерная сортировка
• Сортировка вставками

С большим отрывом (раз в 5–10) победила последняя.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения