(Dis) Доказательство того, что один алгоритм работает быстрее, чем другой из-за внутренних особенностей языка

Для проекта в университете нам пришлось реализовать несколько различных алгоритмов для вычисления классов эквивалентности, когда задан набор элементов и набор отношений между указанными элементами.

Нам было поручено реализовать, среди прочего, алгоритм объединения-поиска и его оптимизации (объединение по глубине, размеру). Случайно (делая что-то, что я считал необходимым для правильности алгоритма) я обнаружил другой способ оптимизации алгоритма.

Это не так быстро, как Union By Depth, но близко. Я не мог понять, почему это было так быстро, поэтому я посоветовался с одним из ассистентов преподавателя, который тоже не мог этого понять.

Проект был на java, и я использовал структуры данных. были основаны на простых массивах целых чисел (объект, а не int ) Позже, при оценке проекта, мне сказали, что это, вероятно, как-то связано с «кэшированием Java», но я не могу найти в Интернете ничего о том, как кеширование повлияет на это.

Каким будет лучший способ, без расчетов сложность алгоритма, чтобы доказать или опровергнуть, что моя оптимизация настолько быстра из-за того, что Java делает вещи? Реализовать это на другом (более низком уровне?) Языке? Но кто сказал, что язык не сделает того же?

Надеюсь, я ясно дал понять,

спасибо

7
задан thepandaatemyface 20 December 2010 в 00:41
поделиться