две маленькие процедуры, удобные, в принципе, для копипасты в свои проекты. на деле процедуры универсальные: работа с массивами и со списками делается через специальные worker records.
первая — HeapSort, вторая — сортировка списков (одно- или двусвязных, циклических или нет) методом MergeSort. сортировка списков, полагаю, особенно интересна: она не требует дополнительной памяти, и обладает всеми полагающимися MergeSort'у свойствами.
в сортировке списка пример, как сортировать список файлов или каталогов, полученый из Files. собственно, для этого оно мне и понадобилось; решил поделиться с народом: может, ещё кому пригодится. оригинальный код — Simon Tatham, перевод с C на D, и потом на Component Pascal — мой. а хипсорт совершенно обычный, «ничей».
Вложения: |
Комментарий к файлу: подсистема Lament, два модуля
lamentsort.7z [3.98 КБ]
Скачиваний: 474
|
|