pragma Preelaborate (Heap_Sort_A);
|
The data to be sorted is assumed to be indexed by integer values from
1 to N, where N is the number of items to be sorted. In addition, the
index value zero is used for a temporary location used during the sort.
|
Type Summary
|
Other Items:
|
type Move_Procedure is access procedure (From : Natural; To : Natural);
|
A pointer to a procedure that moves the data item with index From to
the data item with index To. An index value of zero is used for moves
from and to the single temporary location used by the sort.
|
|
type Lt_Function is access function (Op1, Op2 : Natural) return Boolean;
|
A pointer to a function that compares two items and returns True if
the item with index Op1 is less than the item with index Op2, and False
if the Op1 item is greater than or equal to the Op2 item.
|
|
procedure Sort (N : Natural; Move : Move_Procedure; Lt : Lt_Function);
|
This procedures sorts items in the range from 1 to N into ascending
order making calls to Lt to do required comparisons, and Move to move
items around. Note that, as described above, both Move and Lt use a
single temporary location with index value zero. This sort is not
stable, i.e. the order of equal elements in the input is not preserved.
|
|