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