Algorithm 快速插入和搜索
快速执行以下操作的最佳数据结构是什么Algorithm 快速插入和搜索,algorithm,data-structures,Algorithm,Data Structures,快速执行以下操作的最佳数据结构是什么 插入 找到 谢谢 Avinash根据me hash_map根据me hash_map如果相同的数据结构需要执行这两个操作,那么它应该是一个。如果相同的数据结构需要执行这两个操作,那么它应该是一个。图形邻接列表的一个好的实现是使用动态分配的整数 假设图形中最多有N个节点。您可以将图形存储在由N个动态分配的整数向量组成的数组中。 它将如下所示: 向量[N] 要将边从节点x插入节点y,请使用: 矢量[x]。推力(y) 这样,如果图是稀疏的(没有很多边),您可以
- 插入
- 找到
Avinash根据me hash_map根据me hash_map如果相同的数据结构需要执行这两个操作,那么它应该是一个。如果相同的数据结构需要执行这两个操作,那么它应该是一个。图形邻接列表的一个好的实现是使用动态分配的整数 假设图形中最多有N个节点。您可以将图形存储在由N个动态分配的整数向量组成的数组中。 它将如下所示: 向量[N] 要将边从节点x插入节点y,请使用: 矢量[x]。推力(y) 这样,如果图是稀疏的(没有很多边),您可以快速找到节点的所有传出边 如果你想知道x和y之间是否有一条边,你必须通过向量[x]来搜索它。如果要加快速度,可以在节点数较少(小于1000是合理的)的情况下额外使用二维布尔数组
如果您有很多节点,并且想要加快操作速度,可以使用hashmap。图形邻接列表的一个好实现是使用动态分配的整数向量 假设图形中最多有N个节点。您可以将图形存储在由N个动态分配的整数向量组成的数组中。 它将如下所示: 向量[N] 要将边从节点x插入节点y,请使用: 矢量[x]。推力(y) 这样,如果图是稀疏的(没有很多边),您可以快速找到节点的所有传出边 如果你想知道x和y之间是否有一条边,你必须通过向量[x]来搜索它。如果要加快速度,可以在节点数较少(小于1000是合理的)的情况下额外使用二维布尔数组
如果您有很多节点,并且想要加快操作速度,可以使用hashmap。这是家庭作业吗?在现实世界中,答案是“视情况而定”。直接取决于插入和查找的比率;它还可以取决于插入和查找的类型(插入或查找的数据中可能存在一些有用的相关性)没有作业,我正在尝试了解图形邻接列表的最佳实现。即使这还不够信息。你打算怎么使用它?这是家庭作业吗?在现实世界中,答案是“视情况而定”。直接取决于插入和查找的比率;它还可以取决于插入和查找的类型(插入或查找的数据中可能存在一些有用的相关性)没有作业,我正在尝试了解图形邻接列表的最佳实现。即使这还不够信息。你们实际上打算如何使用它呢?谢谢,我正在试图找出图形调整列表的最佳实现。任何想法都有这种增强的C++库()谢谢,我正在尝试找出最佳的图形化列表的实现。任何想法都有这种提升的C++库()