Je travaille sur une affectation pour un cours d'introduction à la datamining. J'essaie de comprendre la complexité temporelle d'un algorithme (voir ci-dessous)? Est-il linéaire/exponentiel/log/quadratique/polynominal? Des conseils sur la façon d'aborder une question comme celle serait très appréciéComplexité du temps de l'algorithme simple Question
Considérons l'algorithme suivant pour trouver le troisième plus petit élément un tableau:
- Entrée:
n, a[1..n]
- tableau a de nombres, et n est sa taille, n> = 3 - sortie: - retour 3ème plus petit nombre
- variables temporaires:
b[1..3], t, i
Code:
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]
Il n'y a qu'une seule boucle, il n'y a rien imbriqué, et aucun autre appel de fonction ou quelque chose de même bizarre à distance. Qu'est-ce que tu penses? –
Et jusqu'où êtes-vous allé par vous-même? –
cette classe de datamining n'avait-elle pas une sorte d'intro préalable aux algorithmes? – Autoplectic