结构数组
struct
{
string name;
string 2nd_name;
int age; // 0 to 150
}
数组的最大长度为 10^8。
我知道我可以使用 mergesort/quicksort 和所有其他众所周知的算法,但是我想知道是否可以添加其他可以加快排序速度的算法。
最佳答案
人的年龄与用于排序的任意整数有些不同:它具有非常少的可能不同值(所有人的年龄都在 0 到 150 之间)。所以最快的排序方法是分配151个链表(我们称它们为桶)并根据他/她的年龄将每个人的数据结构放入桶中:
bucket[person->age].add(person)
关于algorithm - 按年龄对一组人进行排序的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13109664/