2018.11.1403:26:49.182 ArrayDeleteValue (BTCUSD,M15) вариант Pastushak: Контрольная сумма = 496575839; элементов - 998974; время выполнения = 131158 микросекунд
2018.11.1403:26:49.185 ArrayDeleteValue (BTCUSD,M15) вариант Korotky: Контрольная сумма = 496575839; элементов - 998974; время выполнения = 2431 микросекунд
2018.11.1403:26:49.188 ArrayDeleteValue (BTCUSD,M15) вариант Fedoseev: Контрольная сумма = 496575839; элементов - 998974; время выполнения = 1809 микросекунд
2018.11.1403:26:49.190 ArrayDeleteValue (BTCUSD,M15) вариант Semko: Контрольная сумма = 496575839; элементов - 998974; время выполнения = 785 микросекунд
2018.11.1403:26:49.194 ArrayDeleteValue (BTCUSD,M15) вариант Pavlov: Контрольная сумма = 496575839; элементов - 998974; время выполнения = 2839 микросекунд
2018.11.1403:26:49.199 ArrayDeleteValue (BTCUSD,M15) вариант Nikitin: Контрольная сумма = 496575839; элементов - 997971; время выполнения = 4049 микросекунд
2018.11.1403:26:49.204 ArrayDeleteValue (BTCUSD,M15) вариант Vladimir: Контрольная сумма = 496575839; элементов - 998974; время выполнения = 3888 микросекунд
2018.11.1403:26:49.212 ArrayDeleteValue (BTCUSD,M15) вариант Peter: Контрольная сумма = 496575839; элементов - 998974; время выполнения = 7597 микросекунд
template <typename T>
int arrayFilter3(T &arr[], const T x) // вариан Kuznetsov
{
int i=0;
int j=ArraySize(arr)-1;
for(;;) {
while(arr[i]!=x && i<j) i++;
while(arr[j]==x && i<j) j--;
if (i<j) {
arr[i++]=arr[j--];
} elsebreak;
}
ArrayResize(arr,j+1);
return j+1;
}
2018.11.1403:48:29.572 ArrayDeleteValue (USDRUB,M1) вариант Pastushak: Контрольная сумма = 496206996; элементов - 999002; время выполнения = 131929 микросекунд
2018.11.1403:48:29.576 ArrayDeleteValue (USDRUB,M1) вариант Korotky: Контрольная сумма = 496206996; элементов - 999002; время выполнения = 2411 микросекунд
2018.11.1403:48:29.579 ArrayDeleteValue (USDRUB,M1) вариант Fedoseev: Контрольная сумма = 496206996; элементов - 999002; время выполнения = 1839 микросекунд
2018.11.1403:48:29.581 ArrayDeleteValue (USDRUB,M1) вариант Semko: Контрольная сумма = 496206996; элементов - 999002; время выполнения = 782 микросекунд
2018.11.1403:48:29.585 ArrayDeleteValue (USDRUB,M1) вариант Pavlov: Контрольная сумма = 496206996; элементов - 999002; время выполнения = 2813 микросекунд
2018.11.1403:48:29.590 ArrayDeleteValue (USDRUB,M1) вариант Nikitin: Контрольная сумма = 496206996; элементов - 997969; время выполнения = 4200 микросекунд
2018.11.1403:48:29.596 ArrayDeleteValue (USDRUB,M1) вариант Vladimir: Контрольная сумма = 496206996; элементов - 999002; время выполнения = 3597 микросекунд
2018.11.1403:48:29.604 ArrayDeleteValue (USDRUB,M1) вариант Peter: Контрольная сумма = 496206996; элементов - 999002; время выполнения = 7684 микросекунд
2018.11.1403:48:29.606 ArrayDeleteValue (USDRUB,M1) вариант Kuznetsov: Контрольная сумма = 496206996; элементов - 999002; время выполнения = 681 микросекунд
2018.11.1404:20:26.063 ArrayDeleteValue (USDRUB,M1) вариант Pastushak: Контрольная сумма = 7090.600736767353; элементов - 999003; время выполнения = 132291 микросекунд
2018.11.1404:20:26.067 ArrayDeleteValue (USDRUB,M1) вариант Korotky: Контрольная сумма = 7090.600736767353; элементов - 999003; время выполнения = 2322 микросекунд
2018.11.1404:20:26.071 ArrayDeleteValue (USDRUB,M1) вариант Fedoseev: Контрольная сумма = 7090.600736767353; элементов - 999003; время выполнения = 1831 микросекунд
2018.11.1404:20:26.074 ArrayDeleteValue (USDRUB,M1) вариант Semko: Контрольная сумма = 7090.600736767353; элементов - 999003; время выполнения = 773 микросекунд
2018.11.1404:20:26.079 ArrayDeleteValue (USDRUB,M1) вариант Pavlov: Контрольная сумма = 7090.600736767353; элементов - 999003; время выполнения = 2879 микросекунд
2018.11.1404:20:26.085 ArrayDeleteValue (USDRUB,M1) вариант Nikitin: Контрольная сумма = 7093.903216084301; элементов - 998017; время выполнения = 3605 микросекунд
2018.11.1404:20:26.090 ArrayDeleteValue (USDRUB,M1) вариант Vladimir: Контрольная сумма = 7090.600736767353; элементов - 999003; время выполнения = 3622 микросекунд
2018.11.1404:20:26.100 ArrayDeleteValue (USDRUB,M1) вариант Peter: Контрольная сумма = 7090.600736767353; элементов - 999003; время выполнения = 7252 микросекунд
2018.11.1404:20:26.102 ArrayDeleteValue (USDRUB,M1) вариант Kuznetsov: Контрольная сумма = 7085.49357433088; элементов - 999003; время выполнения = 691 микросекунд
对比相同的ToR上的2个代码变体。
и:
这可能是同一个人写的,相隔一个多小时?笔迹有问题 )阿列克谢,你在扼杀青年人才......
这个营销人员5年来都没能开始销售......而你却说他作为一个程序员更糟糕
对不起,我不是故意要杀你。
:-) 如果你不试图保持顺序,时间是O(1) ,所有循环的总步数=数组大小
懒得编码 :-)
1.从左到右搜索前3个。
2.如果找到了,就从右到左找一个非三,把它复制到3的位置。
继续下去,直到1,2相交为止,按拷贝的数量修剪数组。
理想情况下,它正好是 "气泡排序 "的1/2 :-) 如果不是复制,而是进行交换,输出将是一个部分有序的数组(所有3/3都移到右边)。
所有循环的总步数=数组大小是O(n)复杂度。
如果输入数组被排序,给定的问题将通过二进制搜索 解决。
复杂度在平均情况下是O(log(n)),在最坏情况下是O(n)。
仍然掌握了彼得的版本。
它相当紧凑,甚至可以正常工作。为彼得点赞。
但就速度而言,它从头到尾都是第二位。或者说,从最后的第一名,如果你不计算原始的,完全不能用的速度变体的这个主题的主人。
你是如何测试的?
你是如何进行测试的?
研究代码。
当你懒得写代码时,这就很糟糕了。
这根本不是说我懒惰,而是MT只在VDS上,你不在上面做实验。
关于这一点。
+- 1 :-) 我过几天就从夏令营回来了,我会去看看...
此外,在代码中,终止时有一个额外的循环条目......这是个小问题,但它可以被删除。
这根本不是说我懒惰,而是MT只在VDS上,你不在上面做实验。
关于这一点。
+- 1 :-) 我过几天从乡下回来,我会去看看......
另外,在代码中,最后的循环有额外的输入......小事一桩,但可以删除。
好样的!在纠正了几个错误后,即使不使用ArrayCopy,你也可能把我从基座上打下来了。将军。:))
好样的!在纠正了几个错误后,即使不使用ArrayCopy,你也把我打下了神坛。将军。:))
虽然不完全是这样,因为输出阵列是相当不同的--已经混合。但无论如何,它是很酷的!
当然,如果我们处理的是报价,这将不起作用。我又站在了讲台上。))
我改变了计算校验和的方式。不再是所有元素的简单相加,而是相加为(元素值)/(元素数)。
这就是我得到的东西。