Самый эффективный алгоритм сортировки, не будет традиционным.
Поскольку вы сортируете по таким критериям, как год рождения и знак зодиака, я бы сделал "сортировку по стеку" (я только что сделалчто до).
Это будет работать следующим образом.
Создайте структуру данных для каждого возможного отсортированного значения.Давайте использовать год рождения, например.В год рождения будет только ~ 100 различных значений, которые могут быть.
- Объявите структуру данных для каждого возможного значения года рождения (100 массивов указателей, по одному на каждый год)
- Переберите каждую запись и поместите указатель на запись в этоммассив.
Когда вы закончили цикл по каждой записи, теперь у вас есть 100 массивов, каждый из которых заполнен записями, которые имеют этот конкретный год рождения.Самое замечательное в этом то, что вы сделали это за O (n) раз, так что это намного быстрее, чем любой другой алгоритм сортировки.Это также работает для знаков зодиака и т.д ...
Думайте вне коробки.Этот подход очень полезен при сортировке большого набора данных (n) с возможными значениями (m), где m << n. </p>