
Envoyé par
Zavonen
Ecrire d'abord une fonction 'intersect' qui est un prédicat prenant en argument deux intervalles [a,b] et [c,d] et décidant s'ils se coupent ou non.
Ecrire ensuite une fonction 'fusion' prenant en argument deux intervalles se coupant et retournant l'intevalle réunion.
Organiser ensuite les intervalles en collection (tableau, liste, etc..)
Comparer le premier à tous les autres et chaque fois qu'on trouve dans la liste des autres un intervalle qui 'intersect' le premier remplacer le premier par son union avec celui-ci et supprimer l'intervalle en question de la liste.
A la fin du traitement on a un premier intervalle plus grand que le premier initial, et une liste plus courte que la liste initiale et ne comportant que des intervalles ne coupant pas le premier, il suffit alors d'itérer sur cette nouvelle liste.
Partager