3.1.2 Efficiency of algorithms