(数据结构)这个函数的时间复杂度怎么求?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(数据结构)这个函数的时间复杂度怎么求?相关的知识,希望对你有一定的参考价值。

h(n)=n^1.5+5000nlgn
也可见图,手机拍的,可能不太清楚。希望大神们解答一下。

h(n)=n^1.5+5000nlgn

首先有一点要弄清楚,计算时间复杂度时,各项的系数可以去掉,只保留最高项即可。

h(n) = n^1.5 + 5000nlgn
约等于 = n^1.5 +n log(10)n
= n * (n^0.5 + log(10)n)

通过比较当x趋于正无穷大时y=x^0.5和y=log(10)x在第一像限内的图像,发现前者的增长相对后者的增长来说是越来越大,即后者相对于前者来说是极小项,可以忽略。
最终,
h(n) 约等于 = n * n^0.5
= n^1.5
参考技术A 时间复杂度是度量算法执行的时间长短,算法的时间复杂度记做:T(n)=O(f(n))

分析:随着模块n的增大,算法执行的时间的增长率和f(n)的增长率成正比,所以f(n)越小,算法的时间复杂度越低,算法的效率越高。

在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语句确定它的执行次数,再找出T(n)的同数量级(它的同数量级有以下:1,Log2n ,n ,nLog2n ,n的平方,n的三次方,2的n次方,n!),找出后,f(n)=该数量级,若T(n)/f(n)求极限可得到一常数c,则时间复杂度T(n)=O(f(n))
参考技术B 看不到图片

SQL.求一个随机产生时间的函数

规定一个时间段..
在这个时间段内随机产生一个时间(hh:mm)
请问这个怎么做?
注意:是在 mssql下面,我要把'时间'这个字段的时间更新成随机出来的这个时间.表结构大概是 编号,日期,时间. 编号是关键字.每一行的时间都要取随机时间..
2楼的
随机时间是出来的..但我要的是一个规定时间段内的时间

--建立过程
create procedure gettime
@begintime varchar(5),@EndTime varchar(5),@randtime varchar(5) output
as
set @randtime=(SELECT substring(convert(varchar,convert(datetime,100/RAND(),120),120),12,5) )
while @randtime<=@begintime or @randtime>=@endtime
set @randtime=(SELECT substring(convert(varchar,convert(datetime,100/RAND(),120),120),12,5) )
go
--执行示例
declare @outtime varchar(5)
exec hygettime '05:00','20:00',@outtime output
select @outtime
参考技术A 在哪个环境下,oralce,还是MYSQL,数据库不同,用的函数不同

以上是关于(数据结构)这个函数的时间复杂度怎么求?的主要内容,如果未能解决你的问题,请参考以下文章

归并排序的时间复杂度O(n*log n)是怎么得来的,求大神详细的讲解一下

时间复杂度怎么算?

用C++函数描述个算法,并求出时间复杂度

数据结构时间复杂度问题,求大佬详细解答解答,谢谢🙇!

如何计算一个算法的时间复杂度

怎么在O(N)时间内求一个无序数组的中位数