There is a qualitative difference between modern sorting technology and the very simple 'logical' or lexicographic sorting operations performed by a card sorter, one that Chris.Baicher properly emphasized in an earlier post. They use data transformations to make it possible for two keys to be compared using a single CLC[L]. (DB2 does similar things too.)
A single example will suffice here. The four signed binary-integer storage formats and the nine floating-point storage formats all use the twos-complement sign-representation, 0b for non-negative or 1b for negative. The single-byte signed representation of -128 is thus 11111111b and that of +127 is 01111111b. Lexicographically, the 2C representation of -128 is greater than the 2C representation of +127. This inconvenience can be dealt with in a constructed key that concatenates 'mixed' data-type sort fields in at least two ways, e.g., by complementing the high-order, leftmost bits of such quantities. Operations of this kind are well beyond the scope of card sorters. Sorts have become black boxes. Few of their users know or care much about what goes on inside them, and this is a pity because they embody a lot of not at all obvious technology that is of considerable interest. Much of it is or, better, would be useful elsewhere too. John Gilmore, Ashland, MA 01721 - USA
