Discussion:Analyse de la complexité des algorithmes

message: Le dernier paragraphe ne me semble pas correct (dans le pire cas on ne découpe pas en deux mais on obtient une liste de taille n-2), peut-on mettre un avertissement sur la page dans l'attente d'une correction ?
:Bonjour,
:
:Je ne comprends pas ce que vous ne comprenez pas, alors je vais essayer d’illustrer avec un exemple. Si je cherche « Zola » dans le Bottin, j’ouvre mon gros bouquin à la page du milieu. Imaginons que j’y lise des noms qui commencent par M. Comme Z vient après M, je sais alors qu’il me suffit de chercher dans la moitié d’annuaire comprise entre cette page et la fin. Si je cherchais plutôt « Hugo », comme H vient avant M, je devrais plutôt chercher dans la première moitié de l’annuaire. Dans les deux cas, je me retrouve à continuer la recherche dans un Bottin deux fois plus petit.
:La recherche dichotomique devrait même être connue des écoliers, car je me souviens d’avoir eu des devoirs où il fallait trouver des mots dans le dictionnaire le plus vite possible…
:
:Ce qui me choque un peu par contre, dans cette section, c’est l’emploi du mot « liste ».
:Évidemment la terminologie est plus ou moins fluctuante, et moi-même je n’ai pas une connaissance exhaustive des usages, mais à ma connaissance et d’après l’article Wikipédia, une liste en informatique désigne toute structure de données capable de représenter une suite finie (ou pas) d’éléments. Il s’agit d’une description abstraite de haut niveau, sans précision supplémentaire sur le coût de chaque opération, ce qui est problématique pour une analyse de complexité.
:Pire, je pense que si quelqu’un dit « liste » avec quelque chose de plus précis en tête, il y a de fortes chances qu’il pense à une liste chaînée. En tout cas, j’ai toujours vu « liste » employé dans ce sens, que ce soit en informatique théorique (dont la complexité fait partie), en programmation fonctionnelle (selon la tradition initiée par Lisp…) ou dans mes cours d’informatique. Or, cette structure de données ne permet pas d’accéder à un élément arbitraire en temps constant, ce qui est crucial pour un algorithme dichotomique. Pour ça, il faut utiliser un tableau par exemple.
:Si personne ne me contredit, je corrigerai le vocabulaire de cette section.
:— Maëlan 18 décembre 2018 à 20:51 (CET)
thread_title: Véracité de la partie sur le pire cas de la deuxième méthode de Exemple de la recherche dans une liste triée

message: Bonjour,
Je trouve que cet article, n'est pas très clair, et mélange complexité des algorithmes et des problèmes.
En général lorsque l'on parle de "théorie de la complexité", il s'agit d'étudier la complexité des problèmes. Et le terme "complexité des algorithmes" est plus ou moins un abus de langage je crois. Wiki en utilise plutot "analysis of algorithms"
wiki (en):
A key distinction between analysis of algorithms and computational complexity theory is that the former is devoted to analyzing the amount of resources needed by a particular algorithm to solve a problem, whereas the latter asks a more general question about all possible algorithms that could be used to solve the same problem.
Donc déja je pense que la première chose à faire et de changer le titre et l'intro.
Qu'en pensez-vous?
--Pparent (d) 20 juin 2012 à 12:03 (CEST)
replies: text: Je pense qu'il y a consensus sur ce qu'il convient de faire. Il n'y a "plus qu'à". Le premier qui n'hésite pas aura raison !  --Jean-Christophe BENOIST (d) 20 juin 2012 à 12:26 (CEST)
thread_title:  Confusion complexité Algorithme/problème 

message: Il me semble que dans le tableau des ordres de grandeur de complexité, il y a  2 exemples à changer : en effet, la complexité doit se calculer par rapport à la taille des données, en nombres de bits. Or dans l'exemple de la multiplication matricielle classique, le temps est en O(n^3) pour deux matrices de taille n x n. Les données sont donc de taille 2 n^2, ce qui fait que la complexité est en O(d^{3/2}), où d est la taille des données. Ce n'est donc pas une complexité cubique. De même, l'exemple pour 'quadratique' est 'le parcours d'un tableau' avec sans doute un tableau de taille n x n. Le parcours d'un tableau est donc en réalité de complexité linéaire O(d) = O(n^2). S'il y a accord sur ceci, il faut juste trouver d'autres exemples: le tri à bulles en O(d^2), la corrélation partielle en O(d^3) p.ex. Pyschobbens (discuter) 1 juin 2022 à 21:26 (CEST)
thread_title:  La complexité se calcule par rapport à la taille des données