我正在为一个介绍Datamining课程的工作.我想弄清楚算法的时间复杂度(见下文)?是线性/指数/对数/二次/多项式?关于如何处理这样的问题的任何提示将非常感激
考虑以下算法来查找数组中的第三个最小元素:
n, a[1..n]- 数组a,n是其大小,n> = 3b[1..3], t, i码:
b[1] = a[1]
b[2] = a[2]
if b[1] > b[2] then t=b[1]; b[1]=b[2]; b[2]=t
b[3] = a[3]
if b[2] > b[3] then t=b[2]; b[2]=b[3]; b[3]=t
if b[1] > b[2] then t=b[1]; b[1]=b[2]; b[2]=t
for (i = 4; i <= n; i = i+1)
if a[i] < b[3] then b[3] = a[i]
if b[2] > b[3] then t=b[2]; b[2]=b[3]; b[3]=t
if b[1] > b[2] then t=b[1]; b[1]=b[2]; b[2]=t
return b[3]
Run Code Online (Sandbox Code Playgroud)