我正在用C ++编写一个需要在xyz坐标平面中生成一组点的程序。点集取决于数字x。第一组有点(0,0,0)。第二组有(0,0,0),(1,0,0),(1,1,0),(1,1,1)。第三组包含第二组并添加点(2,0,0),(2,1,0),(2,1,1),(2,2,0),(2,2,1) ),(2,2,2)。
所以我实际上可以使用3 for循环生成集合,没有太多麻烦。但是我需要在一个循环中使用这个集合,我给它输入x,它需要根据x存储集合(进入ADT结构),例如。如果x = 2,那么它将存储的集合是上面提到的第二个集合。
每次运行之后,我处理数据,然后程序重新开始,并且必须根据它在查看循环之前处理的其他一组数据从同一构造中拉出另一组。
集合的大小由以下等式控制:(2x 3 + 6x 2 + 4x)/ 12因此我猜想该集合会快速增长。 / p>
我很好奇是否生成此集合更快,将其打印到文件,然后每次重新生成集合,我从我生成的文件中读取它将其存储到ADT结构中。我实际上需要将数据从x = 1
运行到x = 1000
,所以无论我做什么,我的程序的这部分都必须运行1000次。或者我不应该担心这种事情吗?
我意识到我没有提供足够的信息。这组点实际上将存储在双向链表 1 中,因为我正在做的是在3个空格中取另一组点,比如{{1 }}。我接受{point1, point2, ... }
,我需要找到point1
到生成集合中每个点的最小距离。之后,我必须删除生成的集合中与point1
具有最小距离的点。然后我继续point1
并继续这个过程,直到我完成了我的另一组中的所有积分。
如前所述,我将为point2
运行x = 1
,这意味着我实际上正在比较1001个不同的集合到n th 上面生成的集合。我实际上并不知道我想要从生成的集合中使用哪个集合,我只知道在运行时我需要使用哪个集合,因为我正在使用的另一个集合只能在运行期间放在一起时间。因此,我对该组的大小进行评估,并获得最接近大小的x th 集,并进行上述最小距离计算。
1。我的一个朋友提到我可以使用数组而不是双链表,但我选择双链表的原因是因为我需要实际从每个最小距离比较中删除生成集中的一个点(I当我完成最小距离比较时,实际上可能最终得到一个空列表。功能