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