Cette page les documents de l'époque-de la complexité (alias "Big O" ou "Big O"), de diverses opérations de courant Disponible. D'autres implémentations de Python (ou plus, ou encore sous des versions de développement de Disponible) sont légèrement différentes caractéristiques de performance. Toutefois, il est généralement prudent de supposer qu'ils ne sont pas plus lent par plus d'un facteur O(log n)...
juste pour ajouter depuis que l'indice de l'algorithme peut être appliqué sur list ou d'autres structures de données, c'est mettre en œuvre que la recherche linéaire donc O(n).
Retour à l'index dans la liste du premier élément dont la valeur est x.
C'est une erreur si il n'y a aucune de ces questions.
Qui implique la recherche. Vous êtes effectivement faire x in s mais plutôt que de retourner True ou False vous êtes de retour à l'index de x. En tant que tel, j'irais avec le temps indiqué complexité de O(n).
Pourquoi ne pas les retours -1 au lieu d'une erreur.
Une liste de mise en œuvre va avoir un O(n) la complexité pour un linéaire de recherche (p. ex., liste.l'indice). Bien que peut-être il y a quelques farfelus les implémentations qui n'est pas la pire...
Vous pouvez améliorer la recherche de la complexité à l'aide de différentes structures de données, telles que des listes ordonnées ou des ensembles. Ces sont généralement mises en œuvre avec des arbres binaires. Cependant, ces structures de données de mettre des contraintes sur les éléments qu'ils contiennent. Dans le cas d'un arbre binaire, les éléments doivent être disponible sur commande, mais la recherche de coût descend à O(log n).
Vous êtes dans l'erreur. L ' "Indice" que votre lien est de parler de la même chose que d'Obtenir de l'Élément dans le python.org wiki. Vous pouvez le voir dans la disponible le code source que la méthode de l'indice est en train de faire un O(n) la recherche de la liste.
Essayer ce code, il vous aidera à obtenir votre temps d'exécution prises par lis.l'indice de l'opérateur.
import timeit
lis=[11,22,33,44,55,66,77]for i in lis:
t = timeit.Timer("lis.index(11)","from main import lis")TimeTaken= t.timeit(number=100000)print(TimeTaken)
Il est O(n), consultez également: http://wiki.python.org/moin/TimeComplexity
list
ou d'autres structures de données, c'est mettre en œuvre que la recherche linéaire doncO(n)
.Selon la dite documentation:
Qui implique la recherche. Vous êtes effectivement faire
x in s
mais plutôt que de retournerTrue
ouFalse
vous êtes de retour à l'index dex
. En tant que tel, j'irais avec le temps indiqué complexité de O(n).-1
au lieu d'une erreur.find
fonction pour queUne liste de mise en œuvre va avoir un O(n) la complexité pour un linéaire de recherche (p. ex., liste.l'indice). Bien que peut-être il y a quelques farfelus les implémentations qui n'est pas la pire...
Vous pouvez améliorer la recherche de la complexité à l'aide de différentes structures de données, telles que des listes ordonnées ou des ensembles. Ces sont généralement mises en œuvre avec des arbres binaires. Cependant, ces structures de données de mettre des contraintes sur les éléments qu'ils contiennent. Dans le cas d'un arbre binaire, les éléments doivent être disponible sur commande, mais la recherche de coût descend à O(log n).
Comme mentionné précédemment, regardez ici pour exécuter des coûts de temps de standard de Python structures de données:
http://wiki.python.org/moin/TimeComplexity
Utiliser le code suivant pour vérifier le calendrier. Sa complexité est O(n).
La documentation fournie ci-dessus ne couvrent pas la liste.index()
à partir de ma compréhension, liste.l'indice est O(1) de l'opération.
Voici un lien si vous voulez en savoir plus. https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt
Essayer ce code, il vous aidera à obtenir votre temps d'exécution prises par lis.l'indice de l'opérateur.