Вам не нужна сложная сортировка.Учитывая, что вам нужно покрыть только около 300 разных лет, это то, что я бы сделал.
Создайте array[300]
связанного списка.Индекс ноль - это связанный список для 1730 года. Индекс 1 - это связанный список для 1731 года.
Теперь, когда вы читаете новую запись из файла, вы можете найти индекс массива, вычтя 1730 из годачитать.Затем вы добавляете элемент в связанный список по этому индексу.
Когда весь файл будет прочитан, вы объединяете весь связанный список в один связанный список, начиная с индекса 0.
Теперь у вас есть связанный список, отсортированный по годам.