时间复杂度
时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。
一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。
我们可以记住一句话,“算法中的基本操作的执行次数,为算法的时间复杂度”。那么,什么是基本操作呢:基本操作就是算法中的每一条语句,我们通常可以只考虑循环内的语句就行了(最内层循环里的语句)。
OK,在我们的程序中,我们总能找到一个n,这个n是问题的规模,比如循环的次数,数组或者链表结构元素的个数等,而我们的时间复杂度就是关于这个问题规模n的函数T(n),T(n)实际上叫做“渐进时间复杂度”简称为时间复杂度。基本操作的执行次数f(n)。
现在,我们要把T和f联系起来了:T(n)=O(f(n))。O是数量级的符号。一般而言呢,我们取f(n)中随n增大增长最快的项,然后将该项的系数变为1。
举个例子来说:f(n)=3n4+2n2+1,那么T(n)=O(f(n))=O(n4)。
再来回顾一下:算T(n)=>找出基本操作,确定问题的规模n=>计算基本操作执行次数f(n)=>得出T(n)