Используя лекционный материал, разработать 4 процедуры сортировок (пузырьковой, вставками, выбором, быстрой),
с возможностью сортировать динамические массивы с ключами, определяемыми пользователями.
type TSortedArray=array of pointer;
// Сортируемый в дальнейшем динамический массив указателей.
// Переменные данного типа заполняются пользователем произвольными структурами
// (указателями на записи, числа, объекты и т.п.).
type TCompareFunc=function(p1,p2:pointer):integer;
// Пользовательская функция сравнения. Принимает два элемента массива, возвращает 0, если ключи элементов равны,
// отрицательное значение, если ключ первого элемента меньше второго и положительное значение в противном случае.
// В процедуру сортировки передается два параметра - сортируемый динамический массив A
// (параметр-значение, т.к. фактически является указателем) и пользовательская функция сравнения Compare,
// которая вызывается из сортировки каждый раз, когда необходимо сравнить два значения массива.
procedure SortBubble(A:TSortedArray; Compare:TCompareFunc);
begin
// код пузырьковой сортировки
end;
procedure SortInsert(A:TSortedArray; Compare:TCompareFunc);
begin
// код сортировки вставками
end;
procedure SortChoice(A:TSortedArray; Compare:TCompareFunc);
begin
// код сортировки выбором
end;
procedure SortSpeed(A:TSortedArray; Compare:TCompareFunc);
begin
// код быстрой сортировки
end;