Techniques to analysis running time of algorithms