Learning Algorithms and Analyzing their complexities in details