2018.11.1413:50:34.481 ArrayDeleteValue (BTCUSD,M15) вариант Pastushak: Контрольная сумма = 7192.975450836821; элементов - 998993; время выполнения = 133765 микросекунд
2018.11.1413:50:34.486 ArrayDeleteValue (BTCUSD,M15) вариант Korotky: Контрольная сумма = 7192.975450836821; элементов - 998993; время выполнения = 2330 микросекунд
2018.11.1413:50:34.489 ArrayDeleteValue (BTCUSD,M15) вариант Fedoseev: Контрольная сумма = 7192.975450836821; элементов - 998993; время выполнения = 1840 микросекунд
2018.11.1413:50:34.492 ArrayDeleteValue (BTCUSD,M15) вариант Semko: Контрольная сумма = 7192.975450836821; элементов - 998993; время выполнения = 777 микросекунд
2018.11.1413:50:34.497 ArrayDeleteValue (BTCUSD,M15) вариант Pavlov: Контрольная сумма = 7192.975450836821; элементов - 998993; время выполнения = 2818 микросекунд
2018.11.1413:50:34.503 ArrayDeleteValue (BTCUSD,M15) вариант Nikitin: Контрольная сумма = 7192.975450836821; элементов - 998993; время выполнения = 3922 микросекунд
2018.11.1413:50:34.510 ArrayDeleteValue (BTCUSD,M15) вариант Vladimir: Контрольная сумма = 7192.975450836821; элементов - 998993; время выполнения = 4239 микросекунд
2018.11.1413:50:34.519 ArrayDeleteValue (BTCUSD,M15) вариант Peter: Контрольная сумма = 7192.975450836821; элементов - 998993; время выполнения = 7307 микросекунд
2018.11.1413:50:34.522 ArrayDeleteValue (BTCUSD,M15) вариант Kuznetsov: Контрольная сумма = 7185.677992388435; элементов - 998993; время выполнения = 683 микросекунд
因此,如果一个订单被关闭,它必须从阵列中 "划掉"。在这种情况下,我习惯于将数组 "复制到自身",并将其大小减少一个。
在这种情况下,我将把一个不存在的票据写进数组-1,等到所有的订单都被关闭,然后删除整个数组(数组大小应该被设置为1)。
在这种方法中,票据数组中的一个元素(如果没有顺序)被检查,只有一个条件:如果(ArrayOfTicket[i] > 0) .....
我认为,这比不断 "摇出 "阵列要快。
在这种情况下,我将把一个不存在的票据写进数组-1,等到所有的订单都关闭后,删除整个数组(数组大小=1)。
在这种方法中,票据数组中的一个元素(如果没有顺序)被检查,只有一个条件:如果(ArrayOfTicket[i] > 0) .....
我认为,这比不断 "摇出 "阵列要快。
我不明白...逐个删除元素或检查不存在的订单的索引有什么区别呢......反正数组是摇动的......。
总之,正如他们今天在新闻中所说的那样,不可能为味道申请专利。冲牙器只是颜色不同,但它们的味道都一样。
我不明白...你是想一个一个地删除项目,还是检查不存在的订单的索引,这有什么区别呢......反正数组会超限......。
总之,正如他们今天在新闻中所说的那样,不可能为味道申请专利。Floureshers只在颜色上有区别,但它们的味道都一样。
删除一个元素意味着复制数组中的剩余元素,我不删除数组中的元素,我把不存在的元素(票据)标记为-1的值,当没有市场订单时,我删除一个数组的票据。
至于浮选标记,这肯定是真的,这取决于问题,原则上,在优化过程中通常有2种解决方案。
- 要么增加算法的复杂性,但节省了电脑的内存和计算资源。
- 或简化算法,节省计算资源但浪费内存
校验和不正确,如果数组中存在0,则可能有错误
尼基丁的变体正是对这样的错误起作用。
校验和不正确,如果数组中存在0,则可能有错误
尼基丁的变体正好适用于这种错误。
是的,你是对的。只有尼基丁另外抛出了零要素。这就是为什么他的代码看起来好像是有问题的。实际上是解决了你最初设定的任务。
如果你记录下他对空元素的检查,结果是一样的。
同样,校验和现在考虑到了元素的顺序,以前没有。
是的,你是对的。只有尼基丁也在抛出额外的无效元素。这就是为什么他的代码看起来好像是错的。实际上是解决了你最初设定的任务。
如果你记录下他对空项的检查,结果是一样的。
同样,现在的校验和考虑到了元素的顺序,以前没有。
顺便说一下,如果顺序非常重要,你可以在我的变体后面加上ArraySort,看看ArraySort到底有多大效果。
我现在对另一个问题感兴趣,我找不到答案。
也许有人能解释一下为什么库兹涅佐夫的代码会出现这种变体。
它的工作速度是这个的两倍多,它做的事情完全一样。
编译器的奇妙之处在于什么?
对于这样的设计,是否有可能。
while(arr[i]!=x && i<j) i++;
编译器是否为处理器找到一些特殊的汇编查询命令?
有谁对现代处理器的命令很强吗?
顺便说一下,如果顺序非常重要,我可以在我的版本末尾添加ArraySort,同时让我们看看ArraySort的效果到底如何。
我已经试过了。这是一个相当昂贵的功能。不过,事后扔掉比较容易。所有必要的都要排成一排。
是的,你是对的。只有尼基丁在另外投掷空项。这就是为什么他的代码看起来不对。实际上,这是你在一开始就确定的任务。
如果你记录下他对空项的检查,结果是一样的。
:
工作速度是做同样事情的两倍以上。
优化器是无关紧要的--比较的结果不到一半...