Цитата:
Слабый ноут -
//nativeTest
Current tick: 10
time (avg): 9423.6
//mergeTest
Current tick: 10
time (avg): 17794.5
|
И меня такие результаты, как холодной водой окатили и я начал делать опять свой тест,
тем более, что он тоже Ваш. И вот какие результаты, только между тиками -
Цитата:
//nativeTest
Прошло время - 7697
Прошло время - 7033
Прошло время - 7214
Прошло время - 8071
Прошло время - 7539
Прошло время - 6311
Прошло время - 6843
Прошло время - 7281
Прошло время - 6867
Прошло время - 7328
//mergeTest
Прошло время - 1880
Прошло время - 1880
Прошло время - 1877
Прошло время - 1860
Прошло время - 1894
Прошло время - 1870
Прошло время - 1860
Прошло время - 1854
Прошло время - 1860
Прошло время - 1859
|
И тут сразу вопрос - ну как же так!! И я только хотел искать у себя ошибку в классе,
как обратил внимание на одну маленькую деталь. У Вас метод test вызывается десять раз, который в свою очередь вызывает метод nativeTest или mergeTest, в которых в свою очередь в цикле вызывается сортируемый метод. И вот тут оно самое - в цикле вызывается тоже десять раз, а координаты задаются только для каждого десятого вызова из метода test. То есть получается, что методы сортирую девять раз из десяти уже отсортированные массивы. И в сортировки уже отсортированного, выигрывает нативный, а вот при сортировке не сортированного - с хабра.
Добавлено через 4 минуты
По этому, если я не ошибся, то алгоритм-то хороший, только, как Вы сказали, памяти в два раза больше берет. я не знаю как память мерить и было бы интересно узнать её объем при сортировке не отсортированного.
Добавлено через 11 минут
Вот правильный замер -
Цитата:
//nativeTest
Current tick: 10
time (avg): 8011.7
scout memory - 60 000 KB
//mergeTest
Current tick: 10
time (avg): 2271.3
scout memory - 65 000 KB
|
Добавлено через 12 минут
В четыре раза быстрей.
Если судить по времени сортировки не сортированного и сортированного, то складывается впечатление,
что в Array есть либо флаг "меня не изменяли" либо "сомневаюсь, что меня изменяли и я перехожу на более быстрый алгорит для частично отсортированного массива".