在竞争性编程中使用fork [关闭]

问题描述 投票:-5回答:1

关于竞争性编程环境中通常提到的在运行时限制内更快地执行代码,我有以下问题。

问题:

在语言C,C ++和其他汇编语言中,有些函数直接与系统内核交互。例如,命令或函数(例如fork())将主进程复制为两个进程。

所以,在设定的时限内,可以采用重复处理策略来解决竞争性编程中更复杂的问题吗?该问题包括复杂的测试用例?

我以这种方式思考的逻辑是,如果将代码(主流程)中的执行控制复制到两个子流程中,则可以同时同时独立地完成算法的两个独立计算方面,使用子流程。并且一旦子流程终止,则每个子流程的执行结果将重新加入主流程。

因此,按照上面在程序内部使用重复处理的定义,这会大大减少代码的执行时间,或者是否执行重复处理不会有任何区别?] >

例如,在合并排序和征服方法中,首先,将给定的输入数组分为两部分,让两个子进程独立处理给定数组的两个子部分,子数组已排序,可以将它们重新连接在一起以对给定数组进行最终排序。

我的论点是,如果划分和排序步骤的中间是由两个独立的子过程分别完成的,那不会导致算法更快地执行。

Picture of Process duplication

我有以下问题,关于在竞争性编程环境中通常提到的在运行时限制内更快地执行代码。问题:在语言C,C ++和其他语言中...

c++ c parallel-processing fork mergesort
1个回答
-1
投票

因此,在设定的时限内,可以采用重复处理策略来解决竞争性编程中更复杂的问题吗?其中包括复杂的测试用例?

© www.soinside.com 2019 - 2024. All rights reserved.