На 32-битной машине миллион целых чисел может уместиться в массив из 4 миллионов байтов. 4 МБ не так уж много; он уместится в памяти этой системы в 500 раз (и это не так уж сложно по современным меркам). Миллион строк будет того же размера, за исключением места для хранения этих строк; для коротких строк это по-прежнему не проблема, поэтому добавьте все это. У вас может быть даже массив указателей на структуры, содержащие целое число и ссылку на строку; все будет хорошо. Только когда вы имеете дело с гораздо большим количеством данных (например, с миллиардом элементов), вам необходимо принимать специальные меры в отношении структуры данных.
Для сортировки такого количества вещей выберите алгоритм O ( n log n ) вместо алгоритма O ( n 2). ). Алгоритмы O ( n ) полезны только тогда, когда у вас есть особенно компактные пространства ключей, что довольно редко встречается на практике. Выбор алгоритма из набора, который находится в O ( n log n ), зависит от скорости балансировки и других хороших свойств, таких как стабильность.
Если вы делаете это по-настоящему, используйте базу данных с соответствующими индексами вместо того, чтобы делать это вручную.