Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Мой алгоритм сортировки 1 миллиард ключ(uint64)-значение(uint64) за ≈66 секунд, . Что скажите ?

Евгений Гуру (3655), открыт 8 часов назад
Мой алгоритм сортировки. Входные данные ключ-значение. Ключ 8 байт uint64, связанное значение 8 байт. Количество значений миллиард. Время сортировки 66704 миллисекунд.
Алгоритмическая сложность O(k*n).
Память O(n).
Алгоритм реализован в многозадачном режиме, количество потоков 6.
Часть алгоритма можно реализовать на специальном аппаратном уровне для достижения большей скорости алгоритма.

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

Отчет о состоянии массива написан на русском языке из-за того, что добровольное задание написать сортировку было устным на русском языке в кружке по информатике.

Параметр lena - длинна входного массива.
Параметр sz_mb - размер массива ключа.
Параметр szdt - размер массива значений.
Параметр tm_all - полное время сортировки массива в миллисекундах.
Параметр mega int/s обозначает ОТНОСИТЕЛЬНУЮ СКОРОСТЬ СОРТИРОВКИ.
То есть какого размера массив сортируется данным алгоритмом за секунду.
---------------------------------
Тестовая конфигурация скриншота программы:
Процессор AMD-FX6300 (3.5 ГГц, турбо буст не активирован)
ОЗУ DDR3 32GB (2x16)
MB GIGABYTE
Astra Linux
Среда разработки Lazarus
2 ответа
PC USER Просветленный (27441) 6 часов назад
Часть алгоритма можно реализовать на специальном аппаратном уровне для достижения большей скорости алгоритма.

С этого места поподробнее.

Выкладывай на GitHub
Похожие вопросы