Методом вставки в хеш-таблицу. Ну или, как вариант, бин-сорт. Только он памяти съест много, т.к. фактически создается вторая копия. Но тут поможет вариант сортировки сразу при чтении. Я бы попробовал реализовать именно бин-сорт, если данные подходят. Т.е. получится некоторая комбинация бин-сорт и сортировки вставкой.
Пусть у нас даменные имена состоят только из маленьких английских букв. В таком случае первый шаг при вводе новой записи будет "укладка" ее в соотв. ячейку массива. А вторым шагом - вставка в соотв. список внутри соотв. ячейки в нужную позицию. При этом массив можно описать примерно следующим способом:
Код:
var
A : array ['a'..'z'] Of TList<X>;