gpt4 book ai didi

java - 如果内存不稀缺,您将如何用一种语言实现一种排序,其中包含用于表示和排序集合的库

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:51:10 25 4
gpt4 key购买 nike

如果内存不稀缺,您将如何使用具有用于表示和排序集合的库的语言来实现排序

最佳答案

集合是无序的,所以排序集合是没有用的。 “排序”集与集本身相同,即使内存不足也是如此。

在非稀缺内存中表示一个集合,就像在稀缺内存中表示一个集合一样。然而,如果内存不稀缺,我们可以为内存中的每个值或对象创建一个二进制谓词,声明:“我是集合 X 的成员”。

如果要检查对象 Y 是否是集合 X 的成员,则只需检查二元谓词即可;这是对还是错。

集合中所有对象的迭代就像一个数组。它也可以实现为双链表或使用哈希表。不同之处在于细节;您想要集合中的哪些对象?

如果内存不稀缺,并且您的 CPU 中有足够的马力,那么我会将对象的每个哈希值存储在内存中,而不是即时计算。然后,集合的哈希表式实现对于列出功能来说真的很快。从集合中添加/删除对象相当慢。

如果添加/删除比列表更需要,任何链表都可以。

两种方式都可以使用每个对象的谓词值。这取决于您的要求;例如,您是否允许两个对象同时出现在两组中? (通常这是一个"is"),然后您需要为集合中的每个对象存储一个数组/链表存储,以存储它的成员信息。

不过,没有“唯一正确”的解决方案。只是我的两个便士。

关于java - 如果内存不稀缺,您将如何用一种语言实现一种排序,其中包含用于表示和排序集合的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3021201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com