我想知道如何处理特定类型的算法或使用什么数据结构。这个算法本质上是,如果给定一个无限大的二维数组(在本例中,假设是一个100,000 x 100,000的数组),那么遍历每一列和更改值的最有效方法是什么,并且能够查看一行是否具有所有相同的元素(遍历所有行)
编辑:我指的是大的固定尺寸,而不是无限大。另外,当我使用一个简单的二维数组运行我的算法时,我得到了一个超过时间限制的错误,我确信这是由于遍历每一行而引起的。所以我只需要一种更快的方法来改变列中的值。
我得到了这个算法(伪代码,而不是任何特定语言): for ( i = 1; i < l, i++){看着算法,我认为内环会运行l*m*n次。我想出这个是因为,例如,如果l,m,n分别是3,6,9,那么内环会运行(9*6*3)次。因此,返回内环运行次数的函数如下所示:现在,大O是我努力解决的地方(不一定是这个问题),但我想得到一些进一步的洞察
请注意,我没有“问题”,我也不是在寻找“另一种方法来找到我的算法的大O”。我想知道的是,是否有可能写一个程序,你可以传递数据点,所有的数据点都是,对不同输入大小的算法的性能测量:,(n,time taken to solve problem for n),这将决定你算法的复杂度例如,输入可能是什么(它可能更大,这只是一个示例,这不是问题的重点): 109 000 took 21 ms
327 000 took 68