Имеем 2 разных файла - 250bytes и 37.6KB
1) 2*2500 = 5000 файлов - 8 секунд
2) 2*5000 = 10000 файлов - 38 секунд
3) 2*10000 = 20000 файлов - 228 секунд
Имеем зависимость С1*O(n*n) + С2*O(n*log(n)) вместо С1*O(n) + С2*O(n*log(n)), где C1 - для чтения файлов, а C2 - для сортировок списков, C2 в типичном случае много меньше C1.