Мой алгоритм сортировки. Входные данные ключ-значение. Ключ 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
Алгоритмическая сложность 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