gpt4 book ai didi

java - 作为矩阵的链表和效率

转载 作者:行者123 更新时间:2023-12-02 03:19:36 25 4
gpt4 key购买 nike

当算法中需要使用大矩阵时,为了加快复杂性,如果矩阵稀疏,我们被告知使用链表。这意味着如果数据大部分相同,我们可以只保存不是该值的数据。

但是我们如何确定使用稀疏矩阵不再有用的点?

对于长度为n的方阵,我们如何计算可以说该矩阵有太多非零数据而无法写入链表的点?

我想我们需要使用一个对象的内存大小、两个对象之间的链接,然后使用我们的密度因子。但是如何计算才能安全地说“这个矩阵有 x% 非零数据,最好使用链表?

最佳答案

您的问题的答案取决于您的优化目的。您会针对空间或时间进行优化吗?

假设您优化了空间。要保存长度为 n 的方阵数据,您需要 n*n 个数字(为了简化,假设每个值都是一个整数)。对于链表,您需要具有实际值、矩阵中值的协调以及指向下一个非零值的指针。为了简化,假设每个字段都是整数大小。因此,对于链表,您需要 4 个整数来保存单个值(加上链表头等附加数据)。

恕我直言,一旦矩阵中少于 1/4 的值非零,使用链表比使用数组数组更理想。

显然,还有其他选项可以保留矩阵值;那么比例可以不同。

为了优化时间,这取决于您要运行哪些操作...

关于java - 作为矩阵的链表和效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39821849/

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