1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 28
|
||||||||||||||||
1 | ||||||||||||||||
Парадокс30.04.2013, 00:38. Показов 1634. Ответов 19
Метки нет (Все метки)
Назрел вопрос. Релизовывал сортировку слиянием, далее при тестировании, точнее при замерах времени работы, наткнулся на удивительную вещь:
вот код мейна номер один:
после чего сделал следующее:
Вопрос: КАК ??? Вот сама сортировка, как понимаю дело в ней, поскольку все остальное ведет себя нормально: Кликните здесь для просмотра всего текста
0
|
30.04.2013, 00:38 | |
Ответы с готовыми решениями:
19
Парадокс выбора C++, динамический массив, парадокс Парадокс: значение переменной равно её адресу Парадокс в компилере C++ |
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 28
|
|
30.04.2013, 12:07 [ТС] | 3 |
происходит только для этой сортировки, все остальные которые писал, работают независимо от того есть перед их запуском что-то или нету...
Добавлено через 10 часов 51 минуту пробовал в онлайн компиляторах, разницы во времени никакой. Пробовал на другом компьютере, разница есть, но где-то в секунду для больших массивов. Может дело в Visual Studio 2012 ? И у себя и на другом компе компилировал в ней.
0
|
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
|
||||||
30.04.2013, 14:48 | 5 | |||||
alig007, Ссравнение делают на одинаковых тестах, не факт, что ваш компилятор не делает randomize, srand(GetTickcCount()) перед запуском
Добавлено через 8 минут alig007, Вот такой код, всё окей работает, никаких оптимизаций или чудес (PS я грань кости не менял, всегда генерируется по одному и тому же распределению => массивы одинаковые) Кликните здесь для просмотра всего текста
0
|
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 28
|
|
30.04.2013, 18:43 [ТС] | 6 |
кстати, если поменять debug на release то время сокращается, но по прежнему остается разрыв в несколько секунд
0
|
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
|
|
30.04.2013, 18:51 | 7 |
alig007, я вам скинул код, в котором всё верно работает
0
|
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
|
|
30.04.2013, 19:06 | 8 |
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
30.04.2013, 19:11 | 9 |
Зависит от реализации http://www.cplusplus.com/refer... /RAND_MAX/
0
|
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
|
|
30.04.2013, 20:44 | 10 |
ya_noob, нет, кто вам сказал ? я написал Mod для страховки
Добавлено через 1 минуту ya_noob, я хотел показать, что нет никакого парадокса, есть невнимательность Добавлено через 4 минуты Tulosba, во всех стандартах с++, действительно, это 2 неполных байта
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
30.04.2013, 21:02 | 11 |
Ternsip, не во всех https://ideone.com/TPcbJD
1
|
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
|
|
30.04.2013, 22:17 | 12 |
Tulosba, забавно, спасибо, кстати, в C++ builder от Embarcadero rand тоже большое число кидал, так что защита -- сила привычки
Добавлено через 5 минут Tulosba, я проверил через http://codeforces.com/ GNU C++0x 4, разве gcc-4.7.2 не относится ? потому как выдаёт именно 32767, уж простите за придиру, я люблю мелкие шалости Добавлено через 1 минуту Tulosba, Просто, потом, на запросы пиши по ГОСТу, дорогой ГОСТЬ буду отвечать вот такими дерзкими вещами, как различия в спецификациях. В целом, это не плохой рычаг на защите своего софта.
0
|
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 28
|
|
30.04.2013, 23:38 [ТС] | 13 |
Ternsip, нихрена там не работает, точно так же как и в моем все. по крайней мере в VS 2012. Пробовал компилить в старом Билдере 6, и во-певых, сортирует быстрее чем ВС 2012, во-вторых, нету разницы между первым и вторым вариантами. все-таки дело в продукте майкрософта скорее всего.
0
|
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
|
|
01.05.2013, 00:15 | 14 |
alig007, а вы точно моё решение собрали ? без всякой отсебятины ? у меня тоже MVS2012. Создайте новый проект с решением.
Добавлено через 1 минуту alig007, попробуйте засекать через ctime clock
0
|
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 28
|
|
01.05.2013, 15:10 [ТС] | 15 |
Ternsip, проверил все заново, без изменений. да и вообще, чем отличается ваш код?) да и неважно чем засекать, разница между 20 секундами и 2 секундами и без таймера заметна)
0
|
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
|
|
01.05.2013, 16:05 | 17 |
alig007, тогда запускайте ваш код на http://codeforces.com/ там будет время исполнения
Добавлено через 46 секунд alig007, http://codeforces.com/problemset/customtest на этом сайте гарантированно верно показывеется время работы программы
0
|
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 28
|
|
01.05.2013, 18:08 [ТС] | 18 |
Croessmah, без отладчика, во первых - время одинаково для обоих случаев, во-вторых - время сортировки гораздо меньше чем с отладчиком. Так в чем же дело все-таки?
Добавлено через 1 минуту блин, а если еще и в режиме Realese а не Debug то время вообще офигительно мало, для 200 000 елементов, 31 мс, по сравнению с 160 в режиме Debug
0
|
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
|
|
01.05.2013, 18:10 | 19 |
alig007, запустите ваш код на http://codeforces.com/problemset/customtest и ваша проблема решится, правда, там потребуется регистрация. Вся ваша беда в том, что вы не можете разобраться со средой.
0
|
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 28
|
|
01.05.2013, 18:34 [ТС] | 20 |
Ternsip, да я понял уже) ладно, спсибо всем)
0
|
01.05.2013, 18:34 | |
01.05.2013, 18:34 | |
Помогаю со студенческими работами здесь
20
Работа с базой данных парадокс Парадокс при динамическом создании элементов Парадокс Парадокс If else парадокс) Парадокс Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |