Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 整数数学数组优化?_Arrays_Optimization - Fatal编程技术网

Arrays 整数数学数组优化?

Arrays 整数数学数组优化?,arrays,optimization,Arrays,Optimization,我正在寻找此函数的优化: public bool isDivideEvenly (int[] num, int[] div) { for (int x = 0; x < num.length; x++) { for (int y = 0; y < div.length; y++) { if (num[x] % div[y] == 0) return true; }

我正在寻找此函数的优化:

public bool isDivideEvenly (int[] num, int[] div)
{    
    for (int x = 0; x < num.length; x++)
    {    
        for (int y = 0; y < div.length; y++)
        {    
            if (num[x] % div[y] == 0) return true;
        }    
    }    
}
public bool是独立的(int[]num,int[]div)
{    
对于(int x=0;x
如果对div进行排序,可以对其进行一些搜索,从而减少div的数量。这是否能节省您的时间取决于机器和您的数据。但是,例如,如果最小的数字是1,而最大的数字小于当前的
x
值,则不需要搜索数组,因为它们都不起作用。

与@glowcoder的答案类似,首先过滤
div
的除数以删除倍数可能是一个胜利。例如,如果你有3个,就不需要保留9个


这种方法的有效性将非常依赖于数据。如果
div
num
小得多,并且有很多倍数,则效果最好。如果
div
都是素数,那只会增加成本。

你知道
num
div
的内容吗?(我假设您希望
返回false;
最后,顺便说一下…)确保编译器/JIT正确地对循环进行矢量化?如果没有更多的数据知识,你将无能为力。Glow的想法可能适用于大型阵列。没有关于阵列内容或大小的信息…假设情况不好(非常大,几乎没有重复)