Articles of complexité théorie

Explication intuitive de pourquoi QuickSort est-il n log n?

Est-ce que quelqu’un est capable de donner une explication intuitive, mais formelle, de ce qui fait que QuickSort n log n? D’après ce que je comprends, il faut passer par-dessus n éléments, et il effectue ce journal n fois … Je ne suis pas sûr de savoir comment le mettre en mots pourquoi il fait […]

pourquoi l’access à un élément dans un tableau prend-il un temps constant?

Disons que j’ai un tableau comme: int a [] = {4,5,7,10,2,3,6} quand j’accède à un élément, tel qu’un [3], que se passe-t-il réellement en coulisse? Pourquoi beaucoup d’algorithmes (tels que le livre Cormen …) disent-ils qu’il faut un temps constant? (Je suis juste un noob dans la programmation de bas niveau alors je voudrais apprendre […]

Différences entre complexité temporelle et complexité spatiale?

J’ai vu que dans la plupart des cas, la complexité du temps est liée à la complexité de l’espace et vice versa. Par exemple dans une traversée de tableau: for i=1 to length(v) print (v[i]) endfor Ici, il est facile de voir que la complexité de l’algorithme en termes de temps est O (n), mais […]

Quoi de neuf avec O (1)?

J’ai remarqué une utilisation très étrange de O (1) dans la discussion d’algorithmes impliquant le hachage et les types de recherche, souvent dans le cadre de l’utilisation d’un type de dictionnaire fourni par le système linguistique ou de types dictionnaire ou tableau de hachage utilisés avec array -index notation. Fondamentalement, O (1) signifie borné par […]

Hashtable en C ++?

J’utilise généralement stdlib map C ++ chaque fois que j’ai besoin de stocker des données associées à un type de valeur spécifique (une valeur de clé, par exemple une chaîne ou un autre object). L’implémentation de la carte stdlib est basée sur des arbres qui offrent de meilleures performances (O (log n)) que le tableau […]

Quelle est la complexité de l’expression régulière?

Quelle est la complexité par rapport à la longueur de chaîne nécessaire pour effectuer une comparaison d’expressions régulières sur une chaîne?

Pourquoi la complexité Big-O de cet algorithme O (n ^ 2)?

Je sais que la complexité de cet algorithme est O(n^2) , mais je ne peux pas comprendre pourquoi. int sum = 0; int i = 1; j = n * n; while (i++ < j–) sum++; Même si nous définissons j = n * n au début, nous incrémentons i et décrémentons j au cours […]

Un algorithme O (n) peut-il dépasser O (n ^ 2) en termes de temps de calcul?

Supposons que j’ai deux algorithmes: for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { //do something in constant time } } C’est naturellement O(n^2) . Supposons que j’ai aussi: for (int i = 0; i < 100; i++) { for (int j = 0; […]

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. […]

Algorithmes de sorting pour les données de dissortingbution statistique connue?

Il me semble que si vous connaissez la dissortingbution (au sens statistique) des données à sortinger, les performances d’un algorithme de sorting pourraient être utiles si vous teniez compte de ces informations. Donc, ma question est la suivante: existe-t-il des algorithmes de sorting qui prennent en compte ce type d’informations? Comment sont-ils? Edit: un exemple […]