算法中的步数计算方法
步数法是分析算法的一种方法。在这种方法中,我们计算一条指令的执行次数。由此,我们将尝试找到算法的复杂性。
假设我们有一种算法可以执行顺序搜索。假设每条指令将采用c1,c2,...。执行时间,然后我们将尝试找出该算法的时间复杂度
seqSearch(arr,n,key)
i:=0
whilei<n,do
ifarr[i]=key,then
break
endif
done
returni
n+1
n
0/1
1
c2
c3
c4
c5
现在,如果我们通过乘以执行次数来增加成本(考虑到最坏的情况),我们将得到
Cost=c1+(n+1)c2+nc3+c4+c5
Cost=c1+nc2+c2+nc3+c4+c5
Cost=n(c2+c3)+c1+c4+c5
Cost=n(c2+c3)+C
考虑到c1+c4+c5为C,因此最终方程类似于直线y=mx+b。因此,我们可以说该函数是线性的。复杂度将为O(n)。