salut a toi expert hydra,
Personnellement je n'ai jamais vu la notation sigma[...] dans un contexte de complexite. A mon avis l'auteur de la page wikipedia francaise a fumee, la page anglais est ecrite en notation O(). (Si c'est une notation qui existe vraiment, dites le moi, ca m'interesse.)
La notation O((n+m)log(n)) veut dire que quand n et m sont grand, le temps de calcul ne grandit pas plus vite que c(n+m)log(n) pour une constante c precise. en bref, en bref, si tu double n et m, alors le temps de calcul n'augmente pas plus que d'un facteur 2log(2).
Comment cette complexite est obtenu vient de l'algorithme lui meme. En bref, dans dijkstra, tu fais deux type d'operation, tu extrais le noeud de poids minimum et ensuite tu "relache" chaque arete. La relaxation d'une arete revient a mettre a jour le poids d'un noeud. En bref, tu fais n recherche de minimum et m mise a jour. les deux sont sur des ensembles de taille n. Donc la complexite est O(n*minimum(n)+m*miseajour(n)). Tu peux implementer ces operation minimum et miseajour de plein de facon differente.
La facon al plus simple est d'utiliser un tableau de taille n pour stocker les valeures, tu scanes pour chercher le minimum en O(n). Et tu ecris directement a la bonne position pour mettre a jour en O(1). Donc si tu implemet dijkstra dans un tableau, la complexite est de O(n*n+m*1) = O(n^2).
Apres utiliser un tableau n'est pas forcement la meilleur facon de faire. Et c'est en cela que les tas de fibonacci sont utile. Ils permettent d'implementer les operations minimum et miseajour efficacement. En particulier, minimum est implemente en O(log(n)) et miseajour est implementer en O(1). (NB: c'est en fait un calcul de complexite amortie, mais je pense qu'aujourd'hui tu t'en fous.)
Est ce plus clair maintenant?
Erik