Одна вещь, большая О, не говорит вам о том, насколько велик коэффициент масштабирования. Это также предполагает, что у вас есть идеальная машина. Это важно, потому что чтение из файла, вероятно, будет гораздо дороже, чем все, что вы делаете.
Если вы на самом деле рассчитываете это, вы получите что-то, что startup cost
+ read time
. Стоимость запуска, вероятно, будет самой большой даже для одного миллиона записей. Время чтения будет зависеть от количества прочитанных байтов (т.е. длина чисел может иметь значение). Если у вас есть 100 миллионов, время чтения, вероятно, будет более важным. Если у вас есть один миллиард записей, много будет зависеть от количества уникальных записей, а не от общего количества записей. Количество уникальных записей ограничено ~ 2 млрд.
Кстати: чтобы сделать подсчет более эффективным, попробуйте TIntIntHashMap, который может свести к минимуму создание объекта, делая его в несколько раз быстрее.
Конечно, я говорю только о реальных машинах, которые большие O не учитывают;)
Я хочу сказать, что вы можете сделать большой O-расчет, но он не будет информативным в отношении того, как будет вести себя настоящее приложение.