计算机等级考试二级公共基础知识汇总.doc

计算机等级考试二级公共基础知识

第1章 数据结构与算法

1.1 算法

1.1.1 算法的基本概念

算法是指对解题方案的准确而完整的描述。简单地说,就是解决问题的操作步骤。

值得注意的是,算法不等于数学上的计算方法,也不等于程序。在用计算机解决实际问题时,往往先设计算法,用某种表达方式(如流程图)描述,然后再用具体的程序设计语言描述此算法(即编程)。在编程时由于要受到计算机系统运行环境的限制,因此,程序的编制通常不可能优于算法的设计。

1.1.1.1 算法的基本特征

一般来说,一个算法应具有以下4个基本特征。

(1)可行性(Effectiveness):算法在特定的执行环境中执行,应当能够得出满意的结果,即必须有一个或多个输出。

(2)确定性(Definiteness):算法中的每一个步骤都必须有明确的定义,不允许有模棱两可的解释和多义性。

(3)有穷性(Finiteness):算法必需在有限时间内做完,即算法必需能在执行有限个步骤之后终止。

(4)拥有足够的情报:要使算法有效必需为算法提供足够的情报。当算法拥有足够的情报时,此算法才是有效的;而当提供的情报不够时,算法可能无效。

1.1.1.2 算法的基本要素

通常,一个算法由两种基本要素组成。

?对数据对象的运算和操作;

?算法的控制结构,即运算或操作时间的顺序。

(1)算法中对数据的运算和操作

在一般的计算机系统中,基本的运算和操作有以下4类,如表1-1所示。

表1-1 4类基本的运算和操作

运算类型 操作实 例算术运算+、-、×、÷a+b、3-1逻辑运算与(&)、或(‖)、非(!)!1、1‖0、1&1关系运算><=≠a>b、a=c 、b≠c数据传输赋值、输入、输出a=0、b=3(2)算法的控制结构

一个算法的功能不仅仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。算法中各操作之间的执行顺序称为算法的控制结构。

算法的控制结构给出了算法的基本框架,它不仅决定了算法中各操作的执行顺序,而且也直接反映了算法的设计是否符合结构化原则。描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。

1.1.1.3 算法设计的基本方法

虽然设计算法是一件非常困难的工作,但是算法设计也不是无章可循,人们经过实践,总结和积累了许多行之有效的方法。常用的几种算法设计方法有列举法、归纳法、递推法、递归法、减半递推技术和回溯法。

1.1.1.4 算法设计的要求

通常一个好的算法应达到如下目标:

(1)正确性(Correctness)

正确性大体可以分为以下4个层次:

①程序不含语法错误;

②程序对于几组输入数据能够得出满足规格说明要求的结果;

③程序对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果;

④程序对于一切合法的输入数据都能产生满足规格说明要求的结果。

(2)可读性(Readability)

算法主要是为了方便人的阅读与交流,其次才是其执行。可读性好有助于用户对算法的理解;晦涩难懂的程序易于隐藏较多错误,难以调试和修改。

(3)健壮性(Robustness)

当输入数据非法时,算法也能适当地做出反应或进行处理,而不会产生莫名其妙的输出结果。

(4)效率与低存储量需求

效率指的是程序执行时,对于同一个问题如果有多个算法可以解决,执行时间短的算法效率高;存储量需求指算法执行过程中所需要的最大存储空间。

1.1.2 算法的复杂度

算法的复杂度是算法效率的度量,是评价算法优劣的重要依据。

算法复杂度包括算法的时间复杂度和算法的空间复杂的。

1.1.2.1 算法的时间复杂度

算法的时间复杂度是指执行算法所需要的计算工作量。

为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。

算法的计算工作量是用算法所执行的基本运算次数来度量的,而算法所执行的基本运算次数是问题规模(通常用整数n表示)的函数。即

算法的工作量=f(n)

例如,在N×N矩阵相乘的算法中,整个算法的执行时间与该基本操作(乘法)重复执行的次数n3成正比,也就是时间复杂度为n3,即

f(n)=O(n3)

在有的情况下,算法中的基本操作重复执行的次数还随问题的输入数据集不同而不同。例如在起泡排序的算法中,当要排序的数组a初始序列为自小至大有序时,基本操作的执行次数为0;当初始序列为自大至小有序时,基本操作的执行次数为n(n-1)/2。对这类算法,可以采用平均性态和最坏情况复杂性两种方法来分析。

1.1.2.2 算法的

计算机公共基础知识论文,计算机等级考试二级公共基础知识汇总.doc相关推荐

  1. 全国计算机等级考试——二级公共基础知识辅导讲义 卿勇军主讲

    全国计算机等级考试--二级公共基础知识辅导讲义 卿勇军主讲 第一章数据结构与算法 1.1算法 1.算法是指解题方案的准确而完整的描述.换句话说,算法是对特定问题求解步骤的一种描述. *:算法不等于程序 ...

  2. 计算机二级考试基础知识总结,全国计算机等级考试二级公共基础知识总结

    全国计算机等级考试二级公共基础知识总结 第一章数据结构与算法 1.1 算法 1.算法的基本特征:可行性:确定性,有穷性:拥有足够的情报., 2.确定性:算法中每一步骤都必须有明确定义,不充许有模棱两可 ...

  3. 全国计算机等级考试二级公共,全国计算机等级考试二级公共基础知识.

    全国计算机等级考试二级公共基础知识. (106页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 全国计算机等级考试National Com ...

  4. 全国计算机二级考试vf知识点总结,VF全国计算机等级考试二级公共基础知识点总结.doc...

    VF全国计算机等级考试二级公共基础知识点总结 第一章数据结构与算法 算法的基本特征:可行性,确定性,有穷性,拥有足够的情报. 算法的三种基本控制结构:顺序,选择,循环. 算法的复杂度主要包括:时间复杂 ...

  5. 计算机ms office 基础知识教程,计算机等级考试二级MS-Office基础知识教程.doc

    计算机等级考试二级MS-Office基础知识教程 计算机的发展.类型及其应用领域.计算机(computer)是一种能自动.高速进行大量算术运算和逻辑运算的电子设备. 速度快.精度高.存储容量大.通用性 ...

  6. 中原工学院计算机二级证书,中原工学院@计算机等级考试二级MS_Office基础知识(常考知识点记忆).doc...

    中原工学院@计算机等级考试二级MS_Office基础知识(常考知识点记忆)剖析 计算机的发展.类型及其应用领域.计算机(computer)是一种能自动.高速进行大量算术运算和逻辑运算的电子设备. 速度 ...

  7. 计算机等级考试二级公共基础(C语言)(二)

    计算机等级考试二级公共基础(C语言)(一) 第三章  软件工程基础 [考点1]软件定义与软件特点 软件指的是计算机系统中与硬件相互依存的另一部分,包括程序.数据和相关文档的完整集合. 名称 描述 程序 ...

  8. 2019计算机二级公共基础pdf,全国计算机等级考试二级公共基础最新.pdf

    - 1 - 全国计算机等级考试二级公共基础最新题库 全国计算机等级考试二级公共基础最新题库第一章 数据结 1.结构化程序设计主要强调的是 ( ) 构与算法 A. 程序的规模 B.程序的易读性 C.程序 ...

  9. 全国计算机二级vb 文库,全国计算机等级考试二级VB基础教程电子教案.ppt

    全国计算机等级考试二级VB基础教程电子教案.ppt ,Visual Basic程序设计基础教程 电子教案,制作人曾强聪,2004 年 4 月,课程内容,第 1 章,第 2 章,第 3 章,第 4 章, ...

最新文章

  1. No input file specified.问题的解决
  2. 随风摆动效果_扫盲贴!节目中的AR虚拟效果,使用物理引擎后有什么不同?
  3. Java学习笔记(六)--字符串String类
  4. App上架/更新怕被拒? iOS过审“避雷秘籍”请查收
  5. armadillo 使用注意 越界不报错
  6. 16位无符号比较器设计
  7. Sharepoint学习笔记—ECM系列--3 从.CSV文件导入术语集(Term Sets)
  8. java socket 对方关闭_java Socket判断对方是否已关闭连接
  9. Web框架——Flask系列之蓝图Blueprint(二十一)
  10. 我的Go+语言初体验——(3)Go+ 语言数据类型
  11. 高并发秒杀——SpringBoot集成redis
  12. tomcat 使用log4j 管理日志
  13. stl源码剖析_《STL源码剖析》学习笔记
  14. java实参传空_java形参、实参、值传递、引用传递
  15. Dubbo Remoting模块详解
  16. Mac中如何将本地文文档设置成文档模板(WPS)
  17. python舞蹈链数独游戏
  18. Android之底部菜单栏的实现
  19. 网站如何添加访客统计代码
  20. 一块宝藏存储芯片【SD NAND】

热门文章

  1. php xlsx里插入图片_常见的 PHP 面试题和答案分享
  2. 傅里叶变换matlab案例,基于matlab的傅里叶变换
  3. kotlin 查找id_Kotlin程序查找Sphere的体积
  4. c语言给定一个非空整数数组_C程序检查给定整数的所有位是否为一(1)
  5. 我写了10年博客,却被人说“不火”?我是这样怼回去的?
  6. 带你玩转七牛云存储——高级篇
  7. NPM使用前设置和升级
  8. 缓存通用管理类 + 缓存 HttpContext.Current.Cache 和 HttpRuntime.Cache 的区别
  9. CentOS7挂载nfs盘快速指南
  10. presto集群安装