gpt4 book ai didi

c - 在 C 的 3D 矩阵中查找具有相同元素的行的有效方法

转载 作者:行者123 更新时间:2023-12-02 01:27:05 25 4
gpt4 key购买 nike

我有一个 3D 矩阵 mat[100][100][100]。查找具有出现在 mat[0][][], mat[1][][],.....,mat[99][][]< 中的相同元素的行的有效方法是什么?一种简单的方法是将 mat[0][][] 的每一行与其余 99 个矩阵的所有行进行比较,但这不是很有效(我猜)。有更好的方法吗?

最佳答案

扩展 @chux 的评论,第一步是为每个矩阵的每一行计算哈希值。总共有 10000 个哈希值。结果应存储在包含 10000 个结构的数组中。

struct info
{
int m; // the matrix number
int row; // the row number
uint32_t hash; // the hash value for mat[m][row]
};

static struct info hashArray[10000];

填入hashArray 的所有10000 个条目后,按哈希值对数组进行排序。然后您可以简单地扫描数组以查找任何重复的哈希值。当您确实找到重复项时,您需要通过比较行元素来确认。

关于c - 在 C 的 3D 矩阵中查找具有相同元素的行的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36525701/

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