Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.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
R 如何在绘图中表示函数的效率_R_Plot_Time - Fatal编程技术网

R 如何在绘图中表示函数的效率

R 如何在绘图中表示函数的效率,r,plot,time,R,Plot,Time,在学校,我们正在学习使用R,我们必须找到一种算法,以不同的方式计算排列顺序。所以我提出了4种不同的算法,可以进行比较。但是现在,我希望能够根据我们给出的数据大小显示每个函数工作的时间 因此,首先,我想显示至少一个函数的给定时间(我称之为calculation),而不改变数据的大小。 我就是这么做的: createProcessTest <- function(func, variables, numberOfTests) { outputProgress <- T ptm &

在学校,我们正在学习使用R,我们必须找到一种算法,以不同的方式计算排列顺序。所以我提出了4种不同的算法,可以进行比较。但是现在,我希望能够根据我们给出的数据大小显示每个函数工作的时间

因此,首先,我想显示至少一个函数的给定时间(我称之为
calculation
),而不改变数据的大小。 我就是这么做的:

createProcessTest <- function(func, variables, numberOfTests) {
  outputProgress <- T
  ptm <- proc.time()
  times <- c()
  for(i in 1:numberOfTests) {
    func(variables)
    times <- append(times, (proc.time() - ptm)[3])
    if(outputProgress & i %% 5 == 0) {
      print(paste((i/numberOfTests) * 100, "%"))
    }
  }
  return(times)
}

sampleSize <- 100
nbOperations <- 100
extrait <- sample(1:sampleSize, sampleSize)
matriceDePermutation <- trouverMatriceDePermutation(extrait)

tempsRapideMatrice = createProcessTest(calculOrdrePermutation, matriceDePermutation, nbOperations)
plot(y=tempsRapideMatrice, x=1:nbOperations, cex=0.1, type="l", main="Using matrix", sub="sans boucle", ylab="Time (s)", xlab="Number of iterations")
所以我可以这样使用它:

plot(x=1:100, y=doFullTest(calculOrdrePermutation, T, 5, 100), type="h")
使用的时间取决于数据的大小,从N=1到N=100

所以我要求的是,每一个数据大小运行5倍的函数,取平均值,然后以更大的大小重复。但正如你所见,不可能研究它,我希望有一个线性直方图(因为我的算法复杂度为O(n))

我的代码有问题吗?我做错了吗

我很确定我离目标还不远,但结果很令人沮丧

谢谢你的帮助

plot(x=1:100, y=doFullTest(calculOrdrePermutation, T, 5, 100), type="h")