Le heapsort est un tri sur-place (donc impératif) qui a la même complexité temporelle que le mergesort.
Sinon sur la complexité tu as grosso modo le constat suivant:
- la complexité temporelle est généralement comparable
- comme le dit gorgonite la complexité spaciale est éventuellement un peu supérieure (et dans le pire des cas l'évaluation paresseuse, vu qu'elle est orientée "déforestation", est moins bonne spacialement que l'évaluation stricte)
De toute manière peu de langages sont fonctionnellement purs et la plupart (Scheme,Lisp,Caml,Anubis) possèdent les tableaux sous la forme traditionnelle.
Haskell est fonctionnellement pur, je crois me souvenir qu'il offre des moyens pour, par exemple, créer des matrices en un temps non quadratique, mais je ne suis pas en mesure de te dire si ces moyens compensent complètement l'absence de tableaux traditionnels.
Partager