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

沧州网站制作【沧州网站优化】沧州建网站、沧州微信公众号运营、沧州网页设计、沧州微信小程序商城

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

沧州网站制作【沧州网站优化】沧州建网站、沧州微信公众号运营、沧州网页设计、沧州微信小程序商城


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

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

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


第2章中,我们看到两种截然不同的排序算法:选择排序和归并排序。其实排序算法有很多种,常见的情况是通常每一个可以解决的问题都可以通过多种算法来解决。

那么,应该如何选择解决给定问题的算法呢?一般来说,应该选择易于理解、实现和记录的算法。当性能很重要时(它往往确实很重要),还需要选择能够迅速运行而且能有效使用可用计算资源的算法。因此,我们要考虑一些很微妙的问题,即如何衡量程序或算法的运行时间,以及可以采取哪些措施使程序运行得更快。

3.1 本章主要内容

本章中,我们将介绍以下主题。

  • 程序性能的重要指标。

  • 评估程序性能的方法。

  • 大O表示法。

  • 使用大O表示法估算程序的运行时间。

  • 使用递推关系估算递归程序的运行时间。

3.4节和3.5节介绍的大O表示法,免去了处理那些几乎不可能确定的常量(比如常见的C语言编译器在编译某个给定的源程序时会生成的机器指令数)的麻烦,从而简化了估算程序运行时间的过程。

我们将循序渐进地介绍估算程序运行时间所需的技巧。3.6节和3.7节会展示分析不含函数调用的程序的方法。3.8节将分析具有非递归函数调用的程序。接着3.9节和3.10节会介绍如何处理递归函数。最后,3.11节将讨论递推关系的解决方案,在分析递归函数的运行时间时,对这些函数的归纳定义即称为递推关系。

3.2 算法的选择

如果需要编写的程序只是一次性处理少量数据后就弃之不用的,就应该选择自己所知的最容易实现的算法,编写并调试程序,然后就不用多管了。不过,如果需要编写在很长一段时间里由很多人使用和维护的程序,就会出现其他问题了。其一就是底层算法的可理解性,或者说是简单性。要求算法简单的原因有不少,不过最重要的也许在于,与复杂的算法相比,简单的算法实现起来不容易出错。用简单算法实现的程序,哪怕在使用相当长一段时间后,遇到一些意外输入时曝出奇怪bug的可能性也较小。

应该将程序写得清晰明确,并仔细地记下文档,这样可便于他人维护这些程序。如果算法简单且易于理解,就更易于描述。有了好的文档,原作者之外的程序员就能方便地对原始程序加以修改(原作者经常不会做这些);或者,如果程序完成得比较早,原作者也会对其加以修改。有很多程序员写出巧妙高效的算法后就从公司拍屁股走人了,结果后续的代码维护者只能放弃他们的算法,转而用更慢但更好理解的算法来代替,这种情况屡见不鲜。

当程序要重复运行时,它的效率以及其底层算法的效率就很重要了。我们通常会将效率与程序运行所花的时间挂钩,虽然有时程序也必须占用一些其他资源,比如:

1. 程序变量占用的存储空间;

2. 程序在计算机网络中产生的流量;

3. 必须出入磁盘的数据量。

不过,对大的问题来说,对给定程序是否堪用起着决定性作用的是运作时间,而本章的主题就是运行时间。我们所要讲的程序的效率,其实就是它耗费的时间,是用程序输入大小的函数来衡量的。

通常,可理解性和效率是相互矛盾的目标。例如,比较过图2-3中的选择排序程序和图2-32中的归并排序程序的读者肯定都会认同,后者不仅更长,而且难理解得多。就算我们总结了2.2节和2.8节中给出的那些解释,在程序中添加了经过深思熟虑的注释,结果依然如此。不过,也正如我们将要了解的,只要待排序的元素个数过百,归并排序的效率就会比选择排序的效率高得多。不巧的是,这种情况太普遍了——对大数据量来说有效率的算法,编写和理解起来往往比那些相对低效的算法更加复杂。

算法的可理解性,或者说是简单性,是有些主观的概念。我们可以在某种程度上克服算法不够简单的问题,即在注释和程序文档中对算法进行到位的解释。编写文档的人始终要考虑阅读这些代码及其注释的人:一般人能明白这是在说什么吗?是否需要进一步的解释、细节、定义和示例?

另一方面,程序的效率是个客观的问题:程序所花的时间就是那么多,没什么争议的余地。不过我们没办法用所有可能的(通常是无数的)输入来运行程序。因此,我们要对程序运行时间加以度量,因为它总结了程序处理所有输入的性能,通常是用一个诸如“n2”这样的简单表达式来度量的。本章下面几节的主题就是如何度量程序的运行时间。

3.3 度量运行时间

一旦我们认同可以通过度量程序的运行时间对程序加以评估,就要面对确定实际运行时间的问题。总结运算时间的两种主要方法是:

1. 基准测试;

2. 分析。

我们将依次介绍这两种方法,不过本章主要讲的还是用于分析程序或算法的技术。

c51c866ffa1ab3457f2021e8bbdbcc1.jpg

沧州网站制作沧州网站优化沧州建网站、沧州微信公众号运营、沧州网页设计、沧州微信小程序商城

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