知道要存储的数据由固定数量的唯一值组成(其中顺序很重要),要使用的最佳数据结构是什么?特别是,我试图以最佳方式存储一副 52 张卡片的状态,其中每张卡片由 1 到 52 之间的数字表示。
问问题
414 次
5 回答
1
如果您唯一关心的是表达排列(自然顺序),您可以选择阶乘数字系统,它是排列的最小可能表示形式。
顺便说一句:这不是一个非常实用的解决方案;52!大约是 8E67 ;-)
于 2012-04-14T15:38:14.913 回答
1
一个数组/向量会很好地为你做这件事。
您有固定数量的对象(卡片),您可以用整数识别它们,而可能的整数值之间没有间隙。这允许您使用占用连续内存块并允许基于值(索引)直接访问的数据结构,并且访问使用整数值的自然排序——这完全适合数组/向量
于 2012-04-14T15:30:23.963 回答
0
如果您想确保集合中的唯一性,您可以在 Java 中使用LinkedHashSet
,我希望其他语言/库也有类似的
于 2012-04-14T15:32:40.890 回答
0
于 2014-01-14T17:26:22.590 回答
0
鉴于顺序很重要并且元素数量固定,那么只需使用一组卡片,如下所示:
Card[] cards = new Card[52];
只需确保从 0 到 51 进行索引,在大多数编程语言中它比从 1 到 52 的索引更简单。
于 2012-04-14T15:35:49.023 回答