按第二维度对二维数组进行排序 - 页 2

 

嘿,戈登,谢谢你的提醒,在阅读这段代码时,我想起我已经有一个代码片段,在篮子里循环寻找最大的输家交易,我可以用它加上它的一个克隆反过来寻找最大的赢家,如果赢家大于输家,那么我可以关闭每一笔交易。 这可以满足我的需要。有时,只是在上面睡觉是最好的代码生成器。 说吧,我可能在一夜之间就能完成这个代码。 不需要太多的修改。 我没有必要让它们一次全部关闭。 我们在第一次的时候,然后在下一次的嘀嗒声或蜡烛声中,我们可以再进行一次,或者像我之前说的那样,我有另一个功能,在同一时间启动,这样的东西会很方便。 我可以把它嵌入到该功能的编码中。

谢谢你让我大开眼界,戈登。

 

如果你想按价格对数组进行排序,为什么不直接将价格加载到第一维,将票据加载到第二维......,然后你就可以用正常的方式进行排序。

 

是的,我已经想到了。 然后把数据复制到另一个反转排列的数组中,再以另一种方式排序。 我决定做的事情要简单得多,实际上更符合我的需要。 我基本上是在未平仓的交易中进行循环,找到最大的赢家和小于最大赢家的最大输家,然后把它们都关闭。 在下一个刻度线或蜡烛上,它重复这个过程。 结果很好。

 
gordon:

不管你想怎么称呼它,二维数组的第一个维度是向量arr_name[0,1,...,n][0],所以技术上来说,第一个括号里的是第一个维度;这也是将被ArraySort()排序的向量。来自书中。

既然我们在讨论ArraySort()的问题,我就提一下我长期以来发现的两个未记录的特殊情况(如果有人确认或纠正我,我将非常高兴......)。

  1. 如果第一个维度中的一些元素是相同的,它们不一定会保留它们的顺序。很明显,如果是 "设计 "的话,这应该被记录下来,否则我认为这是一个 "错误"。
  2. OrderSort()对4D数组不起作用(返回错误4053)。同样,这应该被记录下来,但它没有。
很抱歉迟来的答复,伙计们,很多事情都妨碍了我。我向你们保证,我非常感谢你们的回复。
这些是我的回答(在 "垃圾邮件 "模式下:( )。
- 在一维数组上没有问题。在二维、三维、四维数组中,最左边 的一对括号总是 第一维,对吗,戈登?
 
cameofx:
- 在一维数组上没有问题。在二维、三维、四维数组中,最左边 的一对括号总是 第一维,对吗,戈登?

是的。

 
gordon:

不管你想怎么称呼它,二维数组的第一个维度是向量arr_name[0,1,...,n][0],所以技术上来说,第一个括号里的是第一个维度;这也是将被ArraySort()排序的向量。来自书中。

既然我们在讨论ArraySort()的问题,我就提一下我长期以来发现的两个未记录的特殊情况(如果有人确认或纠正我,我将非常高兴......)。

  1. 如果第一个维度中的一些元素是相同的,它们不一定会保留它们的顺序。很明显,如果是 "设计 "的话,这应该被记录下来,否则我认为这是一个 "错误"。
  2. OrderSort()对4D数组不起作用(返回错误4053)。同样,这应该被记录下来,但它没有。
很抱歉迟来的答复,伙计们,很多事情都妨碍了我。我向你们保证,我非常感谢你们的答复。
这些是我的回答。
- 在一维数组上没有问题。在二维、三维、四维数组中,最左边 的一对括号总是 第一维 的。这也是我的理解。
int    a[50];       // A one-dimensional array of 50 integers.
double m[7][50];    // Two-dimensional array of seven arrays,
                    //each of them consisting of 50 integers
但当我看到这个解释时。它的描述方式是"由七个数组组成的二维 数组每个 数组由 50个整数 组成 "在思考这个问题和你的回答时...这一定是
这是一个错误的解释,因为它表明50个整数 更像是数据的行/成员大小,7是列/标题。这使我相信(错误地):"最右边的是行/成员的大小。
最右边 的是我们应该/可以方便地调整大小的行/成员部分。
- 我感谢你分享你的发现,戈登。不幸的是,这些天的测试对我来说是一种奢侈......我只能间歇性地使用电脑和互联网(这很复杂)。
即使在一个死的图表上测试也是一个挑战... :( 。因此,我有时会有 "扭曲的理解力"。我主要依靠记忆和参考资料......(对不起......)。

PS : 哎呀......不知道之前的帖子被录入了。我编辑了它。
 
cameofx:
[...] 这一定是一个错误的解释,因为它表明50个整数 更像是数据的行/成员大小,而7是列/标题。

我不确定它暗示了什么,但无论如何,最左边的是第一维。很多文档都是从俄语翻译过来的,很多时候不是很好的翻译,所以也许这就是其中的一种情况。列/行只是一个比喻;它使我们更容易想象数组,但与实际的实现没有关系。第一个维度是 "行 "还是 "列",由你自己决定。

 
1005phillip:


我以标准的电子表格方式看待数组的索引和尺寸......行-列(记忆法为 "罗马-天主教")。

1D数组。MyArray[RowNumber-1]

二维数组。MyArray[RowNumber-1][ColumnNumber-1]。

三维数组。MyArray[RowNumber-1][ColumnNumber-1][Worksheet-1] ....

这些也是我想象的方式。我引用的关于第一维度的参考资料让我感到困惑...(见上面的帖子)。因此,从逻辑上讲,我们不能调整列号和/或工作表号和/或书号的大小。
和/或BookNumber...只有RowNumber。这是二维、三维和四维数组中最左边的一对括号。
 
cameofx:
所以我们在逻辑上不能调整[...]的大小。

这就对了。

 
gordon:

我不确定它表明了什么,但无论如何,最左边的是第一个维度。很多文档都是从俄语翻译过来的,很多时候翻译得不是很好,所以也许这就是其中的一个例子。列/行只是一个比喻;它使我们更容易想象数组,但与实际的实现没有关系。第一个维度是 "行 "还是 "列",取决于你...

是的......不幸的是,我们中的许多人--我相信我是代表许多新手说的。- 往往依赖现有的文档。