Articles of big o

Est-ce que list :: size () est vraiment O (n)?

Récemment, j’ai remarqué que certaines personnes mentionnaient que std::list::size() avait une complexité linéaire. Selon certaines sources , cela dépend en fait de la mise en œuvre, car la norme ne dit pas quelle doit être la complexité. Le commentaire dans cette entrée de blog dit: En fait, cela dépend de la STL que vous utilisez. […]

complexité de carte multiset, map et hash

J’aimerais connaître la complexité de la notation Big O des classes de cartes multiset, de carte et de hachage STL lorsque: insérer des entrées accéder aux entrées récupérer des entrées comparer les entrées

Est-ce que la base de journalisation Big O (logn) est e?

Pour le type d’arbre de recherche binary des structures de données, je vois que la notation Big O est généralement notée O (logn). Avec un «l» minuscule dans log, cela implique-t-il log base e (n) comme décrit par le logarithme naturel? Désolé pour la simple question mais j’ai toujours eu du mal à distinguer les […]

Implémenter une queue dans laquelle push_rear (), pop_front () et get_min () sont toutes des opérations à heure constante

Je suis tombé sur cette question: implémenter une queue dans laquelle push_rear (), pop_front () et get_min () sont tous des opérations à heure constante. J’ai initialement pensé à utiliser une structure de données min-heap qui présente une complexité O (1) pour un get_min (). Mais push_rear () et pop_front () seraient O (log (n)). […]

Pourquoi accéder à un élément d’un dictionnaire par la clé O (1) même si la fonction de hachage ne peut pas être O (1)?

Je vois comment vous pouvez accéder à votre collection par clé. Cependant, la fonction de hachage elle-même a beaucoup d’opérations dans les coulisses, n’est-ce pas? En supposant que vous ayez une belle fonction de hachage qui est très efficace, cela peut prendre de nombreuses opérations. Est-ce que cela peut être expliqué?

La complexité temporelle de l’algorithme d’Euclid

J’ai du mal à décider quelle est la complexité temporelle du plus grand algorithme de dénominateur commun d’Euclide. Cet algorithme en pseudo-code est: function gcd(a, b) while b ≠ 0 t := b b := a mod b a := t return a Cela semble dépendre de a et b . Je pense que la […]

Pourquoi l’insertion au milieu d’une liste liée O (1)?

Selon l’article de Wikipedia sur les listes liées , l’insertion au milieu d’une liste chaînée est considérée comme O (1). Je pense que ce serait O (n). N’auriez-vous pas besoin de localiser le nœud qui pourrait être proche de la fin de la liste? Est-ce que cette parsing ne tient pas compte de la découverte […]

Qu’est-ce que le temps pseudopolynomial? En quoi diffère-t-il du temps polynomial?

Qu’est-ce que le temps pseudopolynomial ? En quoi diffère-t-il du temps polynomial? Certains algorithmes fonctionnant en temps pseudo-polynomial ont des temps d’exécution tels que O (nW) (pour le problème Knapsack 0/1 ) ou O (√n) (pour la division d’essai ); pourquoi cela ne compte-t-il pas comme temps polynomial?

Différence entre la limite inférieure et la limite serrée?

Avec la référence de cette réponse , qu’est-ce que Theta (lié étroitement)? Omega est la limite inférieure, tout à fait comprise, la durée minimale qu’un algorithme peut prendre. Et nous soaps que Big-O est pour la limite supérieure, signifie la durée maximale qu’un algorithme peut prendre. Mais je n’ai aucune idée en ce qui concerne […]

Qu’est-ce qui causerait un algorithme à la complexité O (log log n)?

Cette question précédente aborde certains des facteurs qui pourraient amener un algorithme à avoir une complexité O (log n). Qu’est-ce qui ferait qu’un algorithme aurait une complexité temporelle O (log log n)?