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

沧州小程序制作【沧州企业邮箱】沧州网站外包、沧州微信商城开发、沧州网店美工、沧州淘宝设计

发表日期: 2021-04-10 16:24:44 浏览次数:143

沧州小程序制作【沧州企业邮箱】沧州网站外包、沧州微信商城开发、沧州网店美工、沧州淘宝设计


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

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

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

示例 3.5

从示例3.3中可知

T(n)=3n5+10n4-4n3+n+1

O(n5),还可以从规则“常数因子不产生影响”中知道n5O(0.01n5)。通过大O的传递律,可知T(n)是O(0.01n5)。

3.5.2 描述程序的运行时间

我们之前对程序的运行时间T(n)的定义是,程序处理大小为n的任意输入所耗费时间单位的最大值。我们还说过,要确定T(n)的准确公式,就算不是不可能,也将非常困难。通常,可以用大O表达式O(f(n))作为T(n)的上限,从而将问题大大简化。

例如,SelectionSort程序的运行时间T(n)的上限是an2,其中a是某个常数,而且n≥1,我们将在3.6节中展示这一事实。然后可以说SelectionSort的运行时间是O(n2)。从直觉上讲,这一陈述是最为实用的,因为n2是个非常简单的函数,而且有关其他简单函数的更强陈述(比如“T(n)是O(n)”)都为假。

不过,因为大O表示法的本性,还可以说运行时间T(n)是O(0.01n2),或O(7n2-4n+26),或者是任何二次多项式的大O。原因在于,n2是任意二次式的大O,而根据传递律,就可以从T(n)是O(n2)这一事实得出T(n)是任意二次式的大O。

更糟的是,n2还是任意三次或更高次多项式,或者是任意指数式的大O。因此,再次利用传递性,T(n)是O(n3),O(2n+n4),等等。不过我们将会解释,为什么O(n2)是表示SelectionSort程序的运行时间的首选。

3.5.3 紧凑性

首先,我们一般都想要达到可以证明的“最紧”大O上界。也就是说,如果T(n)是O(n2),我们就想作出这一表述,而不是作出“T(n)是O(n3)”这种技术上正确但更弱的表述。另一方面,这种方式又存在某种疯狂性,因为如果我们喜欢用O(n2)作为运行时间的表达式,就应该更喜欢O(0.5n2),因为它更“紧凑”,而对O(0.01n2)的喜爱应该就更甚了。不过,因为在大O表达式中,常数因子是不产生影响的,所以通过缩小常数因子让预估运行时间“更紧凑”的尝试是没有意义的。因此,只要有可能,我们就会试着使用常数因子为1的大O表达式。

图3-4列出了一些比较常见的程序运行时间,以及它们的非正式名称。特别要注意,O(1)是表示“某个常数”的惯用简写形式,而且我们还将反复使用这种用意的O(1)。

O

非正式名称

O(1)

常数

O(logn)

对数

O(n)

线性

O(n logn)

n logn

O(n2)

二次

O(n3)

三次

O(2n)

指数

图 3-4 一些常见大O运行时间的非正式名称

更精确地讲,如果同时满足如下两点

1. T(n)是O(f(n));

2. 如果T(n)是O(g(n)),那么f (n)是O(g(n))也为真(通俗地讲,我们找不出这样一个函数g(n),它至少与T(n)增长得一样快,却又比f (n)增长得慢)。

那么我们就说f (n)是T(n)的紧大O边界(tight big-oh bound)。

示例 3.6

T(n)=2n2+3n,而且f (n)=n2。我们说,f (n)是T(n)的紧边界(tightbound)。要知道为什么,先假设T(n)是O(g(n))。然后,存在常数cn0,使得对所有的nn0,有T(n)=2n2+3ncg(n)。那么对nn0,有g(n)≥(2/c)n2。因为f (n)是n2,所以可得出,对nn0,有f (n)≤(c/2)g(n)。因此,f (n)是O(g(n))。

另一方面,f (n)=n3不是T(n)的紧大O 边界。现在可以选择g(n)=n2。我们已经看到,T(n)是O(g(n)),不过不能证明f (n)是O(g(n)),因为n3不是O(n2)。因此,n3不是T(n)的紧大O 边界。

3.5.4 简单性

在我们选择大O边界时,另一个目标就是函数表达式的简单性。与紧凑性不同,简单性有时候是种偏好问题。不过,一般还是可以按照如下标准认定函数f (n)是简单的:

1. 它只有一项;

2. 这项的系数是1。

           int PowersOfTwo(int n)
           {
               int i;(1)            i = 0;(2)            while (n%2 == 0) {(3)                n = n/2;(4)                i++;
               }(5)            return i;
           }复制代码

图 3-5 计算一个正整数n 中因数2的数量

示例 3.7

函数n2是简单的,2n2则不是简单的,因为系数不为1;而n2+n也不是简单的,因为它包含了两项。

不过,也存在某些情况,其中大O 紧凑性的上界和简单性的边界是相互冲突的目标。简单性边界并不能说明一切,以下就是一个例子,好在这样的情况在现实中很少出现。

示例 3.8

考虑一下图3-5中的PowersOfTwo函数,它会接受一个正参数n,并计量n 被2整除的次数。也就是说,第(2)行的测试询问n是否为偶数,如果是,就在第(3)行的循环体中删除一个因数2。同样在这次循环中,我们递增i,而参数i的作用是计量我们从n原本的值中删除的因数2的个数。

设输入的大小就是n 本身的值。while循环的循环体由两条语句组成,即第(3)行和第(4)行,因此可以说执行该循环体一次所需的时间为O(1),也就是某个与n无关的不变时间量。如果该循环要执行m次,那么花在执行循环上的总时间就将是O(m),或者是某个与m成比例的时间量。为单独执行第(1)行和第(5)行,以及进行第一次while循环条件的测试(从技术上讲不属于任何循环迭代的一部分),还要在这个量上加上O(1)或者某个常数。因此,该程序消耗的时间是O(m)+O(1)。根据低阶项可被忽略的规则,这一时间就是O(m),除非m=0,此时这个时间就是O(1)。换个说法就是,在输入n上所花的时间与1加上2整除n的次数是成比例的。


沧州小程序制作沧州企业邮箱沧州网站外包、沧州微信商城开发、沧州网店美工、沧州淘宝设计

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

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

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

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

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

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

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

预约专家

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

  

服务热线:400-111-6878