Я работаю над заданием для вступительного курса Datamining. Я пытаюсь выяснить временную сложность алгоритма (см. Ниже)? Является ли он линейным / экспоненциальным / логарифмическим / квадратичным / полиномиальным? Любые советы о том, как подойти к такому вопросу, будут высоко оценены
Рассмотрим следующий алгоритм поиска третьего наименьшего элемента в
массив:
- Ввод:
n, a[1..n]
- массив чисел a, а n это его размер, n> = 3
- Вывод: - вернуть 3-е наименьшее число
- Временные переменные:
b[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]