单一属性的很大一群元素该如何存储?

发布于 2022-08-29 21:43:45 字数 50 浏览 8 评论 0

面试题:有一亿个人,每个人只有性别这个属性,各自都有编号,你用什么样的结构来存储?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

还给你自由 2022-09-05 21:43:45

给人群从0开始按顺序编号,然后用bit set,只需16M内存,获取每个人性别的操作复杂度O(1),获取全部男性或者女性的复杂度O(n)
当然如果你要还考虑中性之类的特殊情况另当别论。

拒绝两难 2022-09-05 21:43:45

如果不提出进一步的检索要求,可能我会喜欢对人名做哈希运算,然后平摊分布到各个存储节点。

注意肯定不能在存储结构上一分为二,男女各用一个存储区。哪怕不考虑“保密”、“未提供”等因素,性别也绝对不是一分为二的。性别只能看作一般的枚举类型数据。

掩于岁月 2022-09-05 21:43:45

先该问问这些数据以后的使用场景吧?
比如如果只有一种使用场景:看看某种性别的人数,那都不需要把每个人的编号存下来呀,直接存个总数就行了(当然这不太可能,只是举个例子)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文