algorithm - 按年龄对一组人进行排序的最快方法是什么?

标签 algorithm sorting

结构数组

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/

相关文章:

algorithm - 加密字符串长度

python - Numpy - 按第一个数组的单轴对两个 ndarray 进行排序

java - 基于具有特殊标准的多个字段对对象列表进行排序

python - 按两个键值排序

c# - 解析以分号分隔的列表

php拼写检查迭代优化

java - java中合并两个已排序的链表

c - 不使用字符串库函数对字符串进行排序和比较

Python返回适合设置参数的项目列表

c - 这个程序如何打印印度 map ?