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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
#1

Скорость сравнений и присваиваний - C++

31.03.2013, 17:40. Просмотров 873. Ответов 8
Метки нет (Все метки)

Доброго времени суток.
Интересует вопрос: насколько примерно процесс сравнения двух элементов (напр. типа int) проходит быстрее, чем присваивание одному элементу значения другого. Что меняется, если сравниваются не переменные встроенных типов, а объекты определённых в программе классов?
Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2013, 17:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Скорость сравнений и присваиваний (C++):

Отсортировать 5 чисел за 7 сравнений - C++
Отсортировать 5 чисел за 7 сравнений

Количество сравнений в массиве - C++
И снова здравствуйте!) Есть рабочий код - поиск в двоичном массиве. Как модифицировать код, чтоб вычислить число сравнений при поиске?? ...

Посимвольное сравнений чисел. - C++
Здравствуйте! Подскажите, как решить следующую задачу. Требуется посимвольно сравнить символы. Подсчитать в строке количество нулей и...

Ошибки в процедуре для сравнений - C++
Привет всем.! Дорогие друзья,помогите разобраться пытаюсь скомпилить свой код, выдает ошибку в строке Cross = s1*s2<=0; не могу понять...

Количество обменов и сравнений в HeapSort - C++
Всем доброго времени суток! :) Помогите, пожалуйста, разобраться с задачей. Мне нужно подсчитать количество обменов и сравнений в...

Посчитать число сравнений в QuickSort - C++
приветствую всех любителей и профессионалов по С++. Изучаю Quicksort Мне нужно чтобы программа посчитала число сравнений сделанное при...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
31.03.2013, 17:52 #2
Цитата Сообщение от PG94 Посмотреть сообщение
Что меняется, если сравниваются не переменные встроенных типов, а объекты определённых в программе классов?
для объектов вызывается "функция"-оператор сравнения, не?
О чём вообще вопрос? Зачем сравнивать тёплое с мягким?
1
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
31.03.2013, 21:42 #3
Цитата Сообщение от PG94 Посмотреть сообщение
насколько примерно процесс сравнения двух элементов (напр. типа int) проходит быстрее, чем присваивание одному элементу значения другого
сравнение в общем случае кодируется в инструкцию cmp, а присваивание mov.
Сейчас посмотрел Intel мануале, там не написано сколько тактов выполняется каждая инструкция, потому что это зависит от конкретного процессора. Немного погуглил, в среднем обе инструкции выполняются за одинаковое кол-во тактов.
А в связи с чем такой вопрос возник, это вроде совсем не похожие операции?
1
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
31.03.2013, 21:58  [ТС] #4
Нужно исследовать скорость различных типов сортировок. Чтобы вычислить относительное время работы каждой, нужно будет добавить задержки, с величиной которых пока ещё до конца не определился. Отсюда и вопрос.
0
nonedark2008
908 / 647 / 134
Регистрация: 28.07.2012
Сообщений: 1,760
31.03.2013, 22:03 #5
Цитата Сообщение от PG94 Посмотреть сообщение
нужно будет добавить задержки
Что за бред??? Чтобы вычислить время работы функции, выполни эту функцию 100000 раз, засеки время и подели его на эти 1000000. Тогда получишь время выполнения функции для заданного n, так проделай с каждой функцией, затем измени n, и опять тоже самое. А потом сравни как изменилось время у всех функций с изменением n.
1
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
31.03.2013, 22:05 #6
Цитата Сообщение от PG94 Посмотреть сообщение
Нужно исследовать скорость различных типов сортировок
А для каких целей? Если в конечно счете все нужно свести к О нотации, то при расчетах скорость сравнения и обмена задается как C1, C2, а потом эти С вообще отбрасываются.
1
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
31.03.2013, 22:53  [ТС] #7
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Что за бред???
Да, согласен, последую вашему совету. Всем спасибо за участие.
0
Figga
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 72
13.01.2014, 21:22 #8
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Что за бред??? Чтобы вычислить время работы функции, выполни эту функцию 100000 раз, засеки время и подели его на эти 1000000. Тогда получишь время выполнения функции для заданного n, так проделай с каждой функцией, затем измени n, и опять тоже самое. А потом сравни как изменилось время у всех функций с изменением n.
По мне это не достаточно точный метод. Этот эксперемент проделанный несколько раз буде каждый раз иметь разные значения, так как это не единственый процесс выполняемый на компе.
0
nonedark2008
908 / 647 / 134
Регистрация: 28.07.2012
Сообщений: 1,760
13.01.2014, 21:36 #9
Цитата Сообщение от Figga Посмотреть сообщение
По мне это не достаточно точный метод.
Что такое достаточность точности?
Точности данного теста вполне хватает для проверки ассимптотики алгоритмов сортировки.
Если сомневаешься в точности результата, то проведи серию тестов, подсчитай дисперсию и тогда уже делай заявления о достаточности или недостаточности точности по отношению к задаче...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2014, 21:36
Привет! Вот еще темы с ответами:

Быстрая сортировка,количество сравнений - C++
Если я правильно понимаю, то количество сравнений находится в Вайлах, но мне всегда выдает количество сравнений = 1, что бы я ни делал....

Решение линейных сравнений по модулю a*x = b (mod m) - C++
помогите для курсовой написать программу для решения линейных сравнений по модулю (a*x = b (mod m)) и систем таких сравнений. ...

Посчитать количество сравнений элементов массива - C++
Имеется код, сортировка вставками, нужно в этот код всунуть счетчик "количество сравнений элементов массива". Как это сделать? Простым...

Сортировка вставками: количество сравнений и обменов - C++
реализация сортировки вставками где поставить счетчики сравнения и обменов ? вот код: // insertion_sort.cpp: определяет точку входа...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.01.2014, 21:36
Ответ Создать тему
Опции темы

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