2023年6月29日发(作者:)
pythonfind⽅法的复杂度_⾼效算法之时间复杂度介绍上⼀篇博客已经给⼤家介绍了⼀些算法题,明天刚好是中秋了,这⾥祝⼤家中秋快乐。刚好赶上数学建模了,今天就先介绍与衡量算法⽔平的重要指标时间复杂度吧。在时间充裕情况下会更新5+2。之后还会介绍空间复杂度以及python内置函数的时间复杂度。1.简介先看⼀下什么是时间复杂度:衡量代码的好坏,包括两个⾮常重要的指标:运⾏时间和占⽤空间。代码的绝对执⾏时间是⽆法估计的,但可以预估代码的基本执⾏次数。2.程序中最常见的四种执⾏⽅式有(1)t(n) = kn,执⾏次数是线性的。可以理解为有⼀个任务,完成全部要达到n,每k个时间完成任务的1/n,则完成全部任务所需要的时间为kn个时间。(2)t(n) = klog(a)(n),执⾏次数是对数的。可以理解为有⼀个任务,完成全部要达到n,每k个时间完成任务的1/a,然后下⼀个时间完成剩下任务的1/a,依次循环,则完成全部任务所需要的时间为kloa(a)n个时间。(3)t(n) = k,执⾏次数是常量的。可以理解为有⼀个任务,完成全部要达到n,则k个时间完成任务的n,也就是需要k个时间完成所有任务,这个是可以得到代码的绝对执⾏时间的,则完成全部任务所需要的时间为k个时间。(4)t(n) = 0.5n^2 + 0.5n,执⾏次数是⼀个多项式。可以理解为有⼀个任务,完成全部要达到n,完成第⼀个1要1个时间,完成第⼆个1要2个时间,就是不断相加,这⾥简化了,则完成全部任务所需要的时间为0.5n^2 + 0.5n个时间。(5)时间复杂度但是上⾯的不同情况的由于算法不同⽆法⽐较,⽽且有时候根据n的取值⽐较结果也不同。这时候就有了渐进时间复杂度的概念:若存在函数 f(n),使得当n趋近于⽆穷⼤时,t(n)/ f(n)的极限值为不等于零的常数,则称 f(n)是t(n)的同数量级函数。记作t(n)= o(f(n)),称o(f(n)) 为算法的渐进时间复杂度,简称时间复杂度,也被称为⼤o表⽰法。(6)时间复杂度的规则如果运⾏时间是常数量级,⽤常数1表⽰;只保留时间函数中的最⾼阶项;如果最⾼阶项存在,则省去最⾼阶项前⾯的系数。就是当运⾏时间不是常数时,省去前⾯的k系数。⼀般常见的时间复杂度的⽐较为:o(1)希望与⼴⼤⽹友互动??点此进⾏留⾔吧!
发布者:admin,转转请注明出处:http://www.yc00.com/web/1687976238a62709.html
评论列表(0条)