清除一个定义元素的数组 - 页 4 1234567891011...30 新评论 Dmitry Fedoseev 2018.11.13 01:52 #31 是的...完善是没有限制的。 Georgiy Merts 2018.11.13 04:01 #32 是啊...编程的怪兽... 我个人会写和@Dmitry Fedoseev 差不多的,最容易理解同时也是最高效的代码,分别是速度会差不多。 我认为@Nikolai Semko 的代码是相当严重的变态行为,但我认为它应该是有用的。而且我认为这是正确和好的,如果每一毫秒都是重要的。 Vladimir 2018.11.13 07:14 #33 Georgiy Merts:是啊...编程的怪兽... 我个人会写和@Dmitry Fedoseev 差不多的,最容易理解同时也是最高效的代码,分别是速度会差不多。 我认为@Nikolai Semko 的代码是相当严重的变态行为,但我认为它应该是有用的。而且我认为这是正确和好的,如果每一毫秒都是重要的。我不喜欢在这两种情况下,对同一个项目进行多次拖放。这感觉类似于泡沫排序,在绝大多数情况下,泡沫排序是最慢的。按照DMS中的做法更简单、更清晰、更可靠:元素被标记为删除(同时计算有多少被标记),然后任何未被标记的(一次)被移到一个有剩余数组元素数量的新副本。在内存方面,这将另外只占用标志数组("标记为删除")的空间,第二个缩短的数组副本,加上原来的数组,所需要的内存不会超过一次ArrayResize所需要的。如果被删除的不是一个单一的值,而是一个数组,也可以加快标记的速度,这样你就不必总是跑遍所有的值。要做到这一点,要在其中定义一个最大值和最小值(对于字符串来说,这也是可行的),并跳过小于min或大于max的元素,不做任何标记。 TheXpert 2018.11.13 07:31 #34 Dmitry Fedoseev:你最近一直在陷入泥潭,就像在这个主题中一样 ) 弗拉基米尔-帕斯图沙克。展示你的变体实现 Marketeer已经写了变体,我认为这是最优的,我看不出有重复的意义,只是周期的大小拿不出来。 Aliaksandr Hryshyn 2018.11.13 07:53 #35 Dmitry Fedoseev:那就更好了。 最好的选择,速度测量应该证实这一点。 Dmitry Fedoseev 2018.11.13 07:56 #36 TheXpert:你最近一直在钻牛角尖,就像在这个主题里一样)。 Marketeer已经写了一个我认为是最佳的方案,我认为没有必要再重复它了哦,你的博士论文一直没有通过...... Nikolai Semko 2018.11.13 08:12 #37 Vladimir:我不喜欢在这两种情况下,对同一元素进行多次拖放。 在这两种情况下,每个元素最多只能被拖动一次。 Denis Kirichenko 2018.11.13 08:22 #38 TheXpert: 一个有42种产品,另一个有6种,第三个有30种。我不敢想象这样的问题和答案,里面有一个怎样的混蛋这位 "专家 "很不错!他通过揭露 市场的魅力,点燃了观众的热情 :-))我可能不是专家,但我个人坚决不同意德米特里-费多谢耶夫... TheXpert 2018.11.13 08:29 #39 Denis Kirichenko:但就我个人而言,我坚决不同意德米特里-费多谢耶夫的观点......不强求。 Konstantin Nikitin 2018.11.13 08:36 #40 纯粹是为了手头的任务。删除值和空template<typename T> int arrayFilter(T &data[], const T value) { int s, d = s = ArraySize(data); for(int i=d-1; i>=0; i--) if(data[i] == value || data[i] == NULL) { s--; for(int j=i; j<s; j++) data[j]=data[j+1]; } if(d > s) ArrayResize(data, s); return s; } void OnStart() { long array[] = {1, 2, 3, 6, 9, 5, 6, 3, 25, ,, 6, 8, NULL, 7, NULL, 4}; Print( arrayFilter<long>(array, 3) ); } 1234567891011...30 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是啊...编程的怪兽...
我个人会写和@Dmitry Fedoseev 差不多的,最容易理解同时也是最高效的代码,分别是速度会差不多。
我认为@Nikolai Semko 的代码是相当严重的变态行为,但我认为它应该是有用的。而且我认为这是正确和好的,如果每一毫秒都是重要的。
是啊...编程的怪兽...
我个人会写和@Dmitry Fedoseev 差不多的,最容易理解同时也是最高效的代码,分别是速度会差不多。
我认为@Nikolai Semko 的代码是相当严重的变态行为,但我认为它应该是有用的。而且我认为这是正确和好的,如果每一毫秒都是重要的。
我不喜欢在这两种情况下,对同一个项目进行多次拖放。这感觉类似于泡沫排序,在绝大多数情况下,泡沫排序是最慢的。按照DMS中的做法更简单、更清晰、更可靠:元素被标记为删除(同时计算有多少被标记),然后任何未被标记的(一次)被移到一个有剩余数组元素数量的新副本。在内存方面,这将另外只占用标志数组("标记为删除")的空间,第二个缩短的数组副本,加上原来的数组,所需要的内存不会超过一次ArrayResize所需要的。如果被删除的不是一个单一的值,而是一个数组,也可以加快标记的速度,这样你就不必总是跑遍所有的值。要做到这一点,要在其中定义一个最大值和最小值(对于字符串来说,这也是可行的),并跳过小于min或大于max的元素,不做任何标记。
你最近一直在陷入泥潭,就像在这个主题中一样 )
展示你的变体实现
那就更好了。
你最近一直在钻牛角尖,就像在这个主题里一样)。
Marketeer已经写了一个我认为是最佳的方案,我认为没有必要再重复它了哦,你的博士论文一直没有通过......
我不喜欢在这两种情况下,对同一元素进行多次拖放。
一个有42种产品,另一个有6种,第三个有30种。我不敢想象这样的问题和答案,里面有一个怎样的混蛋
这位 "专家 "很不错!他通过揭露 市场的魅力,点燃了观众的热情 :-))我可能不是专家,但我个人坚决不同意德米特里-费多谢耶夫...
但就我个人而言,我坚决不同意德米特里-费多谢耶夫的观点......
不强求。