发表日期: 2021-04-10 16:45:47 浏览次数:71
沧州申请400电话费用【沧州企业全国热线电话办理】沧州开通400电话电信价格、沧州微信公众号代运营外包托管、沧州网店编辑装修美工、沧州网站推广优化大概需要多少钱
沧州市,河北省地级市,地处河北省东南部、河北平原东部的黑龙港流域,位于北纬37°29′~38°57′,东经115°42′~117°50′之间。东部滨临渤海,北部与天津、廊坊接壤,西部及西南部与保定、衡水毗邻,南隔漳卫新河与山东省的滨州、德州相望。
沧州市因濒临渤海而得名,市中心北距天津市120千米、北京市240千米,西南距省会石家庄220千米。沧州市辖2个市辖区,4个县级市,10个县及沧州渤海新区、沧州经济开发区、沧州高新技术产业开发区,总面积1.4万平方公里。 [1-3]
2020年10月,入选河北省第一批新型智慧城市建设试点名单。
考虑图3-11所示的选择排序程序段。作为根据,第(2)行、(5)行、(6)行、(7)行和第(8)行的每次赋值都各为一条语句;而第(4)行和第(5)行组成了选择语句;第(3)行至第(5)行又组成了for
语句;然后第(2)行至第(8)行组成了一个程序块;最后,整个程序段也是for
语句。
(1) for (i = 0; i < n-1; i++) {(2) small = i;(3) for (j = i+1; j < n; j++)(4) if (A[j] < A[small])(5) small = j;(6) temp = A[small];(7) A[small] = A[i];(8) A[i] = temp; }复制代码
图 3-11 选择排序程序段
我们可以用如图3-12所示的树表示程序的结构。树叶(那些圆圈)是简单语句,而其他的节点则表示复合语句。6节点会被标记上它们所表示结构的种类,以及构成该节点所表示简单语句或复合语句的代码行。从每个表示复合语句的节点N 都会向下引出到达其“子节点”的连线。节点N 的子节点表示构成N 所表示复合语句的那些子语句。这样的树就称为程序的结构树。
6我们将在第5章中详细讨论树。
图 3-12 表示语句组合的树
图3-12是图3-11所示程序的结构树。每个圆圈分别是表示图3-11中5条赋值语句的树叶。我们在图3-12中没有说明这5条语句是赋值语句。
在树的顶端(也就是“根”)是表示第(1)至第(8)行整个程序段的节点。for
循环的循环体是由第(2)行至第(8)行组成的程序块。7该程序块是用根节点下方的节点表示的。而这个表示程序块的节点又有5个子节点,分别表示该程序块的5条语句。其中第(2)、(6)、(7)和第(8)行这4条是赋值语句,而第5条是第(3)行至第(5)行的for
循环。
7更为详细的结构树还有表示for
循环初始化表达式、终止测试表达式和重初始化表达式的子节点。
第(3)行至第(5)行表示for
循环的节点又有表示其循环体(就是第(4)行和第(5)行的if
语句)的子节点。而表示第(4)行和第(5)行if
语句的节点又具有表示其组成语句(第(5)行的赋值语句)的子节点。
正如递归构建的程序结构那样,我们可以使用类似的递归方法来定义程序运行时间的大O上界。就像在3.6节中那样,我们假定在下列几类表达式中都不存在函数调用。(1)构成赋值语句、打印语句、选择语句条件的表达式;(2)构成while
循环、for
循环和do-while
循环条件的表达式;(3)for
循环初始化或重初始化的表达式。唯一的例外是对诸如printf这样的读函数或写函数的调用。
依据。简单语句(也就是赋值、读、写或跳转语句)的边界是O(1)。
归纳。对于我们已经讨论过的5种复合结构,计算其运行时间的规则如下。
1. while
语句。设O(f(n))是while
语句循环体的运行时间上界,f (n)是通过递归地应用这些规则得到的。再假设g(n)是循环次数的上界。那么O(1+(f (n)+1)g(n))就是整个while
循环的运行时间上界,其中O(f (n)+1)是循环体加上循环体后测试的运行时间上界。开头那个多出来的1表示循环开始前的第一次测试。在f (n)和g(n)都至少为1(或者如果不定义其值为1,则其值为0,我们就可以定义它们为1)的平常情况下,可以将该while
循环的运行时间记为O(f (n)g(n))。这一运行时间的通用公式如图3-13a所示。
2. do-while
语句。如果O(f (n))是循环体运行时间的上界,且g(n)是循环次数的上界,那么O((f (n)+1)g(n))就是该do-while
循环的运行时间上界。这里“+1”表示的是循环每次迭代之末计算和测试循环条件的时间。请注意,对do-while
循环来说,g(n)总是至少为1。在对所有n 都有f (n)≥1的情况中,do-while
循环的运行时间为O(f (n)g(n))。图3-13b表示了计算普通情况下的do-while
循环运行时间的方法。
3. for
语句。如果O(f (n))是循环体运行时间的上界,且g(n)是循环次数的上界,那么for
语句运行时间的上界就是O((1+f (n)+1)g(n))。因子f (n)+1表示每进行一次循环所花的时间。开头的“1+”表示第一次初始化,以及第一次测试为负从而导致循环体不执行这种可能。在f (n)和g(n)都至少为1,或者可重新定义为至少是1的一般情况下,for
语句的运行时间是O(f (n)g(n)),如图3-13c所示。
图 3-13 计算不含函数调用的循环语句的运行时间
沧州申请400电话费用【沧州企业全国热线电话办理】沧州开通400电话电信价格、沧州微信公众号代运营外包托管、沧州网店编辑装修美工、沧州网站推广优化大概需要多少钱
备案号: 苏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