abstract the notion of the algorithms
Merge branch 'master' of https://github.com/StudentLille1/master1
add the feature to choose the algorithm
Merge branch 'master' of https://github.com/StudentLille1/master1