当前位置: 网站首页>小程序开发>网络推广

沧州企业微信公众号小程序开发公司、沧州企业网页设计方案、沧州做网站开发价格、沧州微信公众号制作运营报价明细表、沧州网站设计公司费用、沧州网站推广大概需要多少钱

发表日期: 2021-04-10 16:25:38 浏览次数:161

沧州企业微信公众号小程序开发公司、沧州企业网页设计方案、沧州做网站开发价格、沧州微信公众号制作运营报价明细表、沧州网站设计公司费用、沧州网站推广大概需要多少钱


沧州市,河北省地级市,地处河北省东南部、河北平原东部的黑龙港流域,位于北纬37°29′~38°57′,东经115°42′~117°50′之间。东部滨临渤海,北部与天津、廊坊接壤,西部及西南部与保定、衡水毗邻,南隔漳卫新河与山东省的滨州、德州相望。

沧州市因濒临渤海而得名,市中心北距天津市120千米、北京市240千米,西南距省会石家庄220千米。沧州市辖2个市辖区,4个县级市,10个县及沧州渤海新区、沧州经济开发区、沧州高新技术产业开发区,总面积1.4万平方公里。 [1-3] 

2020年10月,入选河北省第一批新型智慧城市建设试点名单。

在数学表达式中使用大O表示法

严格地讲,大O表达式在数学上正确的使用方式只有出现在“是”字后这一种情况,比如“2n2O(n3)”。不过,在示例3.8以及本章余下的内容中,我们将直接把大O表达式当作加号以及其他算术运算符的操作数,比如表示为O(n)+O(n2)。应将这样使用的大O表达式解释成“作为大O的某个函数”。例如O(n)+O(n2)就表示“某个线性函数和某个二次函数的和”。此外,O(n)+T(n)应该解释为某个线性函数与某个特定函数T(n)的和。

n 能被2整除多少次?对每个奇数n来说,答案为0。所以对每个奇数n,都有PowersOfTwo函数花的时间为O(1)。不过,当n是2的乘方,也就是说当n对某个k而言是2k时,2能整除n的次数正好是k。当n=2k时,可以在等式两边同时取以2为底的对数,得到log2n=k。也就是说,m至多是n的对数,或者说m=O(logn)。4

4请注意,在大O表达式中说到对数时,是不需要指出底数的。原因在于,如果底数分别为ab,那么logan=(logbn)(logab)。因为logab是个常数,所以可以看到logan 和logbn 只有一个常数因子的差别。因此,函数logxn 对于任何不同底数x 来说都互为大O,所以根据传递律,可以在大O表达式中用任意的logbn 来代替logan,其中b是不同于a 的底数。

因此,可以说PowersOfTwo的运行时间是O(logn)。这一边界满足了我们对简单性的定义。不过,还有更精确的方法来统计PowersOfTwo运行时间的上界,这就是说,它是函数f (n)=m(n)+1的大O,其中m(n)是n 被2整除的次数。如图3-6所示,该函数一点都不简单。它的值在剧烈摆动,但从没有超过1+log2n

{%}

图 3-6 函数f (n)=m(n)+1,其中m(n)是n 被2整除的次数

因为PowersOfTwo的运行时间是O(f (n)),而logn又不是O(f (n)),所以可以说logn不是该程序运行时间的紧边界。另一方面,f (n)是紧边界,但它不简单。

运行时间中的对数

如果要考虑的算法需要处理积分(\ln{a}=\int^a_1\frac{1}{x}\text{d}x),大家可能会因为它们出现在算法的分析中而感到惊讶。计算机科学家们通常会把“logn”考虑为log2n,而不是lnn和lgn。请注意,log2n 就是将n 除以2直到得到1为止的次数,或者换句话说,是为了得到n,相乘的2的个数。大家可能很容易看出,n=2k其实和说log2n=k 是一样的,只要在两边同时取以2为底的对数即可。

PowersOfTwo函数会尽可能多次地用2整除n,而且当n 是2的乘方时,n 能被2整除的次数就是log2n。对数在对分治算法(就是在每个阶段将输入等分为两个部分,或者分为近似相等的两部分的算法,比如归并排序算法)的分析中会频繁地出现。如果我们一开始有大小为n的输入,那么将输入对半分,直到大小为1的阶段数是log2n。或者,如果n不是2的乘方,就是比log2n 大的最小整数。

3.5.5 求和规则

假设某个程序由两部分组成,一部分耗费的时间是O(n2),而另一部分消耗的时间为O(n3)。可以将这两个大O边界“相加”,从而得出整个程序的运行时间。在很多情况下(包括上述情况),通过应用如下求和规则,可以将大O表达式“相加”。

假设已知T1(n)是O(f1(n)),而且T2(n)是O(f2(n))。此外,假设f2的增长率不大于f1的增长率,也就是说,f2(n)是O(f1(n))。那么就可以得出“T1(n)+T2(n)是O(f1(n))n ”的结论。

要证明这一规则,我们知道存在常数c1c2c3n1n2n3,使得

1. 如果nn1,则T1(n)≤c1f1(n);

2. 如果nn2,则T2(n)≤c2f2(n);

3. 如果nn3,则f2(n)≤c3f1(n)。

n0n1n2n3中最大的那个,则当nn0时,(1)、(2)和(3)都成立。因此,对nn0,有

T1(n)+T2(n)≤c1f1(n)+c2f2(n)

如果使用(3)提供f2(n)的上边界,那么完全可以消去f2(n),并得出

T1(n)+T2(n)≤c1f1(n)+c2c3f1(n)

因此,如果定义cc1+c2c3,就证明了对于所有的nn0,有

T1(n)+T2(n)≤cf1(n)

这一命题刚好就是我们需要得出的结论——T1(n)+T2(n)是O(f1(n))。

示例 3.9

考虑一下图3-7中的程序段。该程序会使A成为n 阶单位矩阵。第(2)行至第(4)行在该n×n二维数组的每个单元中都放上0,接着第(5)行和第(6)行会在从A[0][0]A[n-1][n-1]的对角线线上的位置中放入1。结果就形成了具有对于任意n×n 矩阵M都有如下属性的单位矩阵A

           A × M = M × A = M(1)        scanf("%d",&n);(2)        for (i = 0; i < n; i++)(3)            for (j = 0; j < n; j++)(4)                A[i][j] = 0;(5)        for (i = 0; i < n; i++)(6)            A[i][i] = 1;复制代码

图 3-7 创建单位矩阵A的程序段

第(1)行会读取n,花的时间为O(1),也就是某个和n值无关的固定时间量。第(6)行中的赋值语句花的时间也是为O(1),第(5)行和第(6)行的循环要进行n次,在该循环上花的总时间就是O(n)。类似地,第(4)行中的赋值语句花的时间是O(1)。第(3)行和第(4)行的循环要进行n次,花费的总时间为O(n)。第(2)行至第(4)行的外层循环要执行n次,在每次迭代中花费的时间为O(n),所以总时间就是O(n2)。

因此,图3-7所示程序的运行时间就是O(1)+O(n2)+O(n),分别表示语句(1)、第(2)行至第(4)行的循环,以及第(5)行和第(6)行的循环。更正式地讲,如果以下几点同时成立:

T1(n)是第(1)行所花的时间;

T2(n)是第(2)行至第(4)行所花的时间;

T3(n)是第(5)行和第(6)行所花的时间。

那么可以得出如下结论。

T1(n)是O(1);

T2(n)是O(n2);

T3(n)是O(n)。


沧州企业微信公众号小程序开发公司沧州企业网页设计方案沧州做网站开发价格、沧州微信公众号制作运营报价明细表、沧州网站设计公司费用、沧州网站推广大概需要多少钱

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878