2011全国计算机等级考试二级公共基础知识教程

合集下载

2011年计算机等级考试二级公共基础知识_软件工程基础

2011年计算机等级考试二级公共基础知识_软件工程基础

2011年全国计算机等级考试二级公共基础知识总结:软件工程基础3.1 软件工程基本概念1、软件的相关概念计算机软件是包括程序、数据及相关文档的完整集合。

软件的特点包括:1)软件是一种逻辑实体,而不是物理实体,具有抽象性;2)软件的生产与硬件不同,它没有明显的制作过程;3)软件在运行、使用期间不存在磨损、老化问题;4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;5)软件复杂性高,成本昂贵;6)软件开发涉及诸多的社会因素。

2、软件危机与软件工程软件工程源自软件危机。

所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件工程的主要思想是将工程化原则运用到软件开发过程,它包括3个要素:方法、工具和过程。

方法是完成软件工程项目的技术手段;工具是支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。

软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。

3、软件生命周期软件生命周期:软件产品从提出、实现、使用维护到停止使用退役的过程。

软件生命周期分为软件定义、软件开发及软件运行维护三个阶段:1)软件定义阶段:包括制定计划和需求分析。

制定计划:确定总目标;可行性研究;探讨解决方案;制定开发计划。

需求分析:对待开发软件提出的需求进行分析并给出详细的定义。

2)软件开发阶段:软件设计:分为概要设计和详细设计两个部分。

软件实现:把软件设计转换成计算机可以接受的程序代码。

软件测试:在设计测试用例的基础上检验软件的各个组成部分。

3)软件运行维护阶段:软件投入运行,并在使用中不断地维护,进行必要的扩充和删改。

4、软件工程的目标和与原则(1)软件工程目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。

(2)软件工程需要达到的基本目标应是:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发,及时交付使用。

二级公共基础2011.3(第一章)

二级公共基础2011.3(第一章)
a b 左支树 d f e g 根结点 c 右支树
1
2 4 8 9 10 5 11 12 6 13 14 3 7 15
深度是多少呢?
满二叉树
1 满二叉树:每一层结点数达到最大 2 3
4
8 9 10
5
11 12
6
7
完全二叉树
完全叉树:除最后一层外,其余每一层结点数达到最 思考:完全二叉树有n个结点,问有多少个叶子结点? 大,最后一层结点或满,或右边连续缺少若干结点
链表
• 结点的储存丌一定连续 • 各结点之间的存储顺序不数据元素的逻辑关系可以 丌一致 • 链式存储适合于线性结构也适合于非线性结构
h
h 1345 数据域 指针域
元素1 1400
元素2 1536
元素3 1346
元素4 ∧
1.5.4 线性链表的基本运算
• 线性链表有3种基本运算?
• 查找 • 插入 • 删除
low
( 08, 14, 23, 37,
mid
46, 55, 68, 79,
high
91 )
low mid
( 08, 14, 23,
high=mid-1
37, 46, 55, 68, 79, 91 )
low=mid+1 mid
high
1.7.2 二分查找
• 二分法查找:适合于顺序存储的有序表 • 二分法查找的特点:
a1 a2 … an ←入队
↑ ↑ 队头 队尾 队列:可能出现假溢出现象 解决:采用循环队列(依然为顺序存储)
1.4.7 循环队列及其运算
• 什么是循环队列
• 循环队列是队列的一种顺序存储结构形式,在 队列最后一个位置已被使用,而第一个位置穸 闲的情况下,仍然能进行入队操作。

全国计算机等级考试二级教程——公共基础知识

全国计算机等级考试二级教程——公共基础知识

全国计算机等级考试二级教程——公共基础知识一、计算机的基本组成部分。

计算机由硬件和软件两部分组成,硬件包括中央处理器(CPU)、存储器、输入输出设备等;软件包括操作系统、应用软件等。

1.中央处理器(CPU):计算机的核心部件,执行所有指令。

2.存储器:存储数据和程序。

3.输入设备:把数据从外部输入到计算机中,如键盘、鼠标、扫描仪等。

4.输出设备:把计算机处理的数据输出到外部,如打印机、显示器、音响等。

二、计算机的工作原理。

计算机的工作原理可以分为5个部分:输入、存储、处理、输出和控制。

1.输入:把数据或指令输入到计算机中,通过输入设备进行输入。

2.存储:将输入的数据或指令存储在内存中。

3.处理:根据指令执行相应的操作,如计算、比较、排序等。

4.输出:将处理后的结果输出到外部,通过输出设备进行输出。

5.控制:计算机通过控制器控制各个部件的运行,以完成整个计算过程。

三、计算机的分类。

计算机按其用途和规模可以分为大型机、中型机、小型机和微型计算机。

1.大型机:主要用于大型企业和政府机关,可以同时处理多个用户的请求,性能强劲。

2.中型机:主要用于中小型企业,相对于大型机规模和性能较小。

3.小型机:主要针对个体户、小企业和办公室等,处理能力比微型计算机强。

4.微型计算机:用于一般個人用戶和小型企业,具有价格低廉、体积小及易操作的特点,性能相对其他计算机较弱。

四、操作系统。

操作系统是管理计算机硬件和软件资源的程序,它在计算机的各个层次上进行控制和管理,包括处理器的管理、内存的管理、文件系统的管理等等。

常见的操作系统有:Windows、Linux、Unix、Android等。

五、计算机网络。

计算机网络是指把分布在不同地点的计算机集成在一起,实现资源共享和信息传输的系统。

计算机网络的分层体系结构一般被分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

其中物理层和数据链路层主要负责数据传输的物理和链路层面的工作;网络层和传输层负责数据传输的网络和传输方面的工作;会话层、表示层和应用层则负责数据传输的高层次工作。

(面授版)全国计算机等级考试二级公共基础知识辅导讲义

(面授版)全国计算机等级考试二级公共基础知识辅导讲义

全国计算机等级考试二级——公共基础知识教程(2011年版)作者:王欣前言全国计算机等级考试(National Computer Rank Examination,简称NCRE)是经原国家教育委员会(现教育部)批准,由教育部考试中心主办,面向社会,用于考察应试人员计算机应用知识与技能的全国性计算机水平考试体系。

全国计算机等级考试设四个等级。

它不以评价教学为目的,考核内容不是按照学校要求设定,而是根据社会不同部门应用计算机的不同程度和需要、国内计算机技术的发展情况以及中国计算机教育、教学和普及的现状而确定的;它以应用能力为主,划分等级,分别考核,为人员择业、人才流动提供其计算机应用知识与能力水平的证明。

全国计算机等级考试二级是目前参考人数最多的一个等级。

二级考试设置了多个考试科目:C语言程序设计、Visual Basic语言程序设计、Visual FoxPro数据库程序设计、Access数据库程序设计、C++语言程序设计、Java语言程序设计、Delphi语言程序设计等。

考试形式为“理论+上机”,必须理论考试和上机考试均合格才认作通过考试。

不管考生选考二级哪个科目,理论考试中都要考公共基础知识,且试题均一样,占30分,在试卷中为选择题的1-10题,填空题的1-5题。

公共基础知识多数考题考察的都是基本原理与基本概念,要求考生实记。

目前在网络上流行的《全国计算机等级考试——二级公共基础知识辅导讲义》为我在2008年编写的,本次改版根据最新的考试大纲,结合教育部考试中心所编的教程和近年来的数份真题,重新对某些知识点进行了归纳,全面符合最新的考试命题特点。

本书分为四章,排序按照教育部考试中心所编的教程设定,第一章为“数据结构与算法”;第二章为“程序设计基础”;第三章为“软件工程基础”;第四章为“数据库设计基础”。

考生只要把本书中的要点掌握,并做几份近几年的公共基础知识真题后,应对公共基础知识应该没有太大问题。

全国计算机等级考试二级教程——公共基础知识

全国计算机等级考试二级教程——公共基础知识

全国计算机等级考试二级教程——公共基础知识一、操作系统操作系统是计算机系统中最基本的软件,其作用是管理、协调并控制各类计算机资源,提供给应用程序一个运行环境。

操作系统的特点:1. 并发:多个程序同时运行,需要操作系统管理和调度资源。

2. 共享:多个程序共享计算机资源,操作系统需要合理分配和控制资源的使用。

3. 虚拟:操作系统可以为每个应用程序提供一个虚拟的机器环境,使得每个应用程序都觉得自己在独占计算机资源。

4. 异步:程序的执行都是异步的,操作系统需要管理和协调程序的执行。

常见操作系统:1. Windows2. macOS3. Linux二、数据库数据库是一种用于存储和管理数据的软件系统,它可以提供对数据的快速访问和高效管理。

数据库的特点:1. 数据共享:多个用户可以同时访问数据库,并共享其中的数据。

2. 数据安全:数据库系统可以对数据进行安全控制,保证数据的完整性、一致性和安全性。

3. 数据独立:应用程序和数据库是独立的,应用程序只需要使用提供的数据接口访问数据库。

4. 数据持久化:数据库中的数据可以永久保存,即使电脑断电或重启也不会影响数据的保存。

常见数据库:1. MySQL2. Oracle3. SQL Server三、网络技术网络技术是计算机网络系统的核心,包含了数据传输、数据交换和数据处理等各种技术和方法,使得计算机和网络系统能够高效地进行数据交流和通信。

网络技术的特点:1. 数字化:计算机网络系统中所有数据都是以数字形式传输和处理的。

2. 传输速度快:计算机网络系统能够非常快地进行数据传输和处理。

3. 实时性:计算机网络系统中的数据传输和处理是实时的。

4. 全球化:计算机网络系统可以实现全球范围的数据传输和通信。

常见网络技术:1. TCP/IP协议2. 网络安全技术3. 无线网络技术。

计算机二级公共基础知识教程

计算机二级公共基础知识教程

计算机二级公共基础知识教程计算机已经成为现代社会中不可或缺的一部分,几乎所有行业都离不开计算机的应用。

为了提高我们的计算机运用水平,了解计算机的基本原理和操作方法是至关重要的。

本教程将为大家介绍计算机二级公共基础知识,帮助读者了解计算机的组成部分、操作系统、常用办公软件以及网络基础知识。

一、计算机的组成部分计算机由硬件和软件两部分组成。

硬件包括中央处理器、内存、硬盘、显示器、键盘、鼠标等;而软件则包括操作系统和应用软件。

中央处理器是计算机的核心部件,负责执行计算机的指令和处理数据。

内存是临时存储数据的地方,而硬盘则是长期存储数据的地方。

显示器用于展示计算机的输出信息,键盘和鼠标用于输入指令和操作计算机。

理解计算机的组成部分对于学习计算机知识至关重要。

二、操作系统操作系统是计算机的核心软件,它负责管理计算机的硬件资源,控制计算机的运行。

常见的操作系统有Windows、Mac OS和Linux等。

操作系统提供了图形用户界面和命令行界面两种操作方式。

图形用户界面更加直观和易于上手,而命令行界面则更加灵活和高效。

熟悉操作系统的基本操作,对于日常的计算机使用和问题解决非常重要。

三、常用办公软件办公软件是计算机用户必备的工具,常见的有文字处理软件、电子表格软件和演示文稿软件等。

文字处理软件如Microsoft Word可以用于编写文档、设计排版和处理图像等;电子表格软件如Microsoft Excel可以用于数据分析和计算;演示文稿软件如Microsoft PowerPoint则可以用于制作各类演示文稿。

熟练掌握这些办公软件的使用方法,将提高我们的工作效率和表达能力。

四、网络基础知识互联网已经成为我们日常生活中不可或缺的一部分,了解网络基础知识势在必行。

网络由多个计算机通过通信设备连接而成,可以实现计算机之间的数据传输和信息共享。

常见的网络类型有局域网、广域网和因特网等。

了解网络的基本结构和原理,能够帮助我们更好地利用网络资源,保护网络安全,并且可以参与到网络应用开发和维护中。

全国计算机等级考试教程:二级公共基础知识

全国计算机等级考试教程:二级公共基础知识

读书笔记
内容挺全的,都是二级基础知识。
内容全,但是有些数据有小错误,不过我感觉有些数据演算讲解这方面的还是看不懂[微笑][抓狂]。
教材能有多生动呢?难不成计算机二级是俺一辈子都过不了的考试吗?!。
我是为了应对office二级考试,需要看公共基础方面的书籍,因为常用**阅读,就在这上面发现了这本书, 有知识,有联系,对于掌握和记忆是很有帮助的。
2
4.2数据模型
3
4.3关系代数
4
4.4数据库设 计与管理
5
课后总复习
附录A全国计算 机等级考试二 级公共基础知 识考试大纲
附录B参考答案
作者介绍
这是《全国计算机等级考试教程:二级公共基础知识》的读书笔记模板,暂无该书作者的介绍。
精彩摘录
这是《全国计算机等级考试教程:二级公共基础知识》的读书笔记模板,可以替换为自己的精彩内容摘录。
非常功利地读完了这本书…目的是为了考计算机二级…还是临时抱佛脚的心态占上风,以往都是刷题库去记 忆公共知识,也总是效果平平。反而倍感疲惫,我真的需要这样的一张证书吗。果然凡事还是得奢求一点兴趣最 好。
目录分析
1
1.1算法
2
1.2数据结构 的基本概念
3 1.3线性表及
其顺序存储结 构
4
1.4栈和队列
全国计算机等级考试教程:二级公共 基础知识
读书笔记模板
01 思维导图
03 读书笔记 05 作者介绍
目录
02 内容摘要 04 目录分析 06 精彩摘录
思维导图
本书关键字分析思维导图
等级
第章
等级
全国
程序
是非
基础
考试
计算机
考试 设计

51PASS考证通2011年3月版二级公共基础知识突击教程

51PASS考证通2011年3月版二级公共基础知识突击教程

51PASS考证通2011年3月版二级公共基础知识突击教程突击教程(2011年3月版)当前版本:2011-01-22最新版本下载:/前言............................................................- 5 - 使用说明....................................................- 5 - 第1天:全部的基本概念..........................................- 5 - Point1:算法的基本概念......................................- 5 - 出题趋势................................................- 5 -考点精讲................................................- 6 -真题分析................................................- 6 - Point2:软件工程基本概念....................................- 8 - 出题趋势................................................- 8 -考点精讲................................................- 8 -真题分析................................................- 8 - Point3:数据库的基本概念...................................- 11 - 出题趋势...............................................- 11 -考点精讲...............................................- 11 -真题分析...............................................- 12 - Point4:程序设计方法与风格.................................- 16 - 出题趋势...............................................- 16 -考点精讲...............................................- 16 -真题分析...............................................- 17 - Point5:结构化程序设计.....................................- 17 - 出题趋势...............................................- 18 -考点精讲...............................................- 18 -真题分析...............................................- 18 - Point6:面向对象的程序设计方法.............................- 19 - 出题趋势...............................................- 19 -考点精讲...............................................- 19 -真题分析...............................................- 20 - Point7:基本排序与查找的算法...............................- 21 - 出题趋势...............................................- 21 -考点精讲...............................................- 21 -真题分析...............................................- 22 - 第2天:软件工程与数据库设计...................................- 25 - Point1:数据模型...........................................- 25 - 出题趋势...............................................- 25 -考点精讲...............................................- 25 -真题分析...............................................- 26 - Point2:软件定义阶段.......................................- 31 - 出题趋势...............................................- 31 -考点精讲...............................................- 31 -真题分析...............................................- 32 - Point3:关系代数...........................................- 33 - 出题趋势...............................................- 33 -考点精讲...............................................- 33 -真题分析...............................................- 33 -Point4:软件设计阶段.......................................- 37 - 出题趋势...............................................- 37 -考点精讲...............................................- 37 -真题分析...............................................- 38 - Point5:数据库设计与管理...................................- 43 - 出题趋势...............................................- 43 -考点精讲...............................................- 43 -真题分析...............................................- 44 - Point6:软件测试...........................................- 46 - 出题趋势...............................................- 46 -考点精讲...............................................- 46 -真题分析...............................................- 47 - Point7:程序的调试.........................................- 50 - 出题趋势...............................................- 50 -考点精讲...............................................- 50 -真题分析...............................................- 50 - 第3天:数据结构:栈、队列、二叉树等...........................- 52 - Point1:数据结构的定义.....................................- 52 - 出题趋势...............................................- 52 -考点精讲...............................................- 52 -真题分析...............................................- 52 - Point2:线性表、线性链表和循环链表.........................- 53 - 出题趋势...............................................- 53 -考点精讲...............................................- 53 -真题分析...............................................- 53 - Point3:栈、队列和循环队列.................................- 55 - 出题趋势...............................................- 55 -考点精讲...............................................- 55 -真题分析...............................................- 55 - Point4:线性链表、双向链表与循环链表.......................- 60 - 出题趋势...............................................- 60 -考点精讲...............................................- 60 -真题分析...............................................- 61 - Point5:二叉树.............................................- 62 - 出题趋势...............................................- 62 -考点精讲...............................................- 62 -真题分析...............................................- 63 - 模拟测验.......................................................- 69 - 2011年3月二级公共基础知识................................- 69 -前言使用说明全国计算机等级考试的所有二级科目笔试考试中,都包括公共基础知识的30分题目。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录二级公共基础知识考纲 (1)第一章数据结构与算法 (2)第二章程序设计基础 (19)第三章软件工程基础 (23)第四章数据库设计基础 (32)全国计算机等级考试二级公共基础知识考纲考试内容一、基本数据结构与算法1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。

2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。

3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。

4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。

5.线性单链表、双向链表与循环链表的结构及其基本运算。

6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。

7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。

二、程序设计基础1.程序设计方法与风格。

2.结构化程序设计。

3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。

三、软件工程基础1.软件工程基本概念,软件生命周戎概念,软件工具与软件开发环境。

2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。

3.结构化设计方法,总体设计与详细设计。

4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。

5.程序的调试,静态调试与动态调试。

四、数据库设计基础1.数据库的基本概念:数据库,数据库管理系统,数据库系统。

2.数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型。

3.关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。

4.数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。

考试方式公共基础的考试方式为笔试,与C语言(V isualBASIC、V isual FoxPro、Java、Access、Visual C++)的笔试部分合为一张试卷。

公共基础部分占全卷的30分。

公共基础知识有10道选择题和5道填空题。

第一章数据结构与算法一、内容要点(一)算法1.算法的基本概念算法是指解题方案的准确而完整的描述。

即是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,没有二义性,同时该规则将在有限次运算后可终止。

1)算法的基本特征(1)可行性由于算法的设计是为了在某一个特定的计算工具上解决某一个实际的问题而设计的,因此,它总是受到计算工具的限制,使执行产生偏差。

如:计算机的数值有效位是有限的,当大数和小数进行运算时,往往会因为有效位数的影响而使小数丢失,因此,在算法设计时,应该考虑到这一点。

(2)确定性算法的设计必须是每一个步骤都有明确的定义,不允许有模糊的解释,也不能有多义性。

例如,一个实际的问题,小宝和萍萍共有12个苹果,小宝比萍萍多4个,请问小宝和萍萍各有几个苹果?这个问题,我们可以立一个方程组x+y=12和x-y=4来求解,要求x和y的值,公式是正确的,但如何让计算能够进行计算,我们的算法不能把公式直接输进去,而应该设计出解题的步骤和过程。

即设计的算法是计算工具所能够正常解决问题的过程。

(3)有穷性算法的有穷性,即在一定的时间是能够完成的,即算法应该在计算有限个步骤后能够正常结束。

例如,在数学中的无穷级数,在计算机中只能求有限项,即计算的过程是有穷的。

(4)拥有足够的情报算法的执行与输入的数据和提供的初始条件相关,不同的输入或初始条件会有不同的输出结果,提供准确的初始条件和数据,才能使算法正确执行。

2)算法的基本要素一是数据对象的运算和操作,二是算法的控制结构。

(1)算法中对数据的运算和操作算法实际上是按解题要求从环境能进行的所有操作中选择合适的操作所组成的一组指令序列。

即算法是计算机所能够处理的操作所组成的指令序列。

(2)算法的控制结构算法的功能不仅取决于所选用的操作,而且还与各操作之间的顺序有关。

在算法中,操作的执行顺序又称算法的控制结构,一般的算法控制结构有三种:顺序结构、选择结构和循环结构。

在算法描述是,有相关的工具对这三种结构进行描述,常用的描述工具有:流程图、N-S结构图和算法描述语言等。

3)算法设计的基本方法为用计算机解决实际问题而设计的算法,即是计算机算法。

通常的算法设计有如下几种:(1)列举法列举法的基本思想是,根据提出的问题,列举出所有可能的情况,并用问题中给定的条件检验哪些是满足条件的,哪些是不满足条件的。

列举法通常用于解决“是否存在”或“有哪些可能”等问题。

例如,我国古代的趣味数学题:“百钱买百鸡”、“鸡兔同笼”等,均可采用列举法进行解决。

使用列举法时,要对问题进行详细的分析,将与问题有关的知识条理化、完备化、系统化,从中找出规律。

(2)归纳法归纳法的基本思想是,通过列举少量的特殊情况,经过分析,最后找出一般的关系。

归纳是一种抽象,即从特殊现象中找出一般规律。

但由于在归纳法中不可能对所有的情况进行列举,因此,该方法得到的结论只是一种猜测,还需要进行证明。

(3)递推递推,即是从已知的初始条件出发,逐次推出所要求的各个中间环节和最后结果。

其中初始条件或问题本身已经给定,或是通过对问题的分析与化简而确定。

递推的本质也是一种归纳,递推关系式通常是归纳的结果。

例如,裴波那契数列,是采用递推的方法解决问题的。

(4)递归在解决一些复杂问题时,为了降低问题的复杂程序,通常是将问题逐层分解,最后归结为一些最简单的问题。

这种将问题逐层分解的过程,并没有对问题进行求解,而只是当解决了最后的问题那些最简单的问题后,再沿着原来分解的逆过程逐步进行综合,这就是递归的方法。

递归分为直接递归和间接递归两种方法。

如果一个算法直接调用自己,称为直接递归调用;如果一个算法A调用另一个算法B,而算法B又调用算法A,则此种递归称为间接递归调用。

(5)减半递推技术减半递推即将问题的规模减半,然后,重复相同的递推操作。

例如,一元二次方程的求解。

(6)回溯法有些实际的问题很难归纳出一组简单的递推公式或直观的求解步骤,也不能使用无限的列举。

对于这类问题,只能采用试探的方法,通过对问题的分析,找出解决问题的线索,然后沿着这个线索进行试探,如果试探成功,就得到问题的解,如果不成功,再逐步回退,换别的路线进行试探。

这种方法,即称为回溯法。

如人工智能中的机器人下棋。

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

1)时间复杂度即实现该算法需要的计算工作量。

算法的工作量用算法所执行的基本运算次数来计算。

同一个问题规模下,如果算法执行所需要的基本次数取决于某一特定输入时,可以用以下两种方法来分析算法的工作量: 算法工作量=f(n) (1)平均性态用各种特定输入下的基本运算次数的加权平均值来度量算法的工作量。

设x 是某个可能输入中的某个特定输入,p(x)是x 出现的概率,t(x)是算法在输入为x 时所执行的基本运算次数,则算法的平均性态定义为:∑∈=nD x x t x p n A )()()(D n 表示当规模为n 时,算法执行时所有可能输入的集合。

(2)最坏情况复杂度指在规模为n 时,算法所执行的基本运算的最大次数。

它定义为:)}({max )(x t n W nD x ∈=例如,在具有n 个元素的数列中搜索一个数x 。

平均性态:n q qn n q i nq t p n A ni i n i i )1(2)1()1()(111-++=-+==∑∑=+=即该数在数列中任何位置出现的数列是相同的,也有可能不存在,存在的概率为q 。

如果有一半的机会存在,则概率q 为1/2,平均性态:n n n n A 43)211(221)1()(≈-+⨯+=如果查找的元素一定在数列中,则每个数存在的概率即为1,则平均性态为:221)(n n n A ≈+=最坏情况分析:即要查找的元素X 在数列的最后或不在数列中,显然,它的最坏情况复杂度为:n n i t n W i =+≤≤=}11|max{)(2)算法的空间复杂度指要执行该算法所需要的内存空间。

算法所占用的内存空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间,如执行过程中工作单元以及某种数据结构所需要的附加存储空间等。

(二)数据结构的基本概念1.概念数据结构是指相互有关联的数据元素的集合。

它包括以下两个方面:●表示数据元素的信息●表示各数据之间的前后件关系1)数据的逻辑结构是指反映数据元素之间的逻辑关系的数据结构。

数据的逻辑结构有两个要素:●数据元素的集合,记作D●数据之间的前后件关系,记作R则数据结构B=(D,R)2)数据的存储结构数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,或数据的物理结构。

即数据存储时,不仅要存放数据元素的信息,而且要存储数据元素之间的前后件关系的信息。

通常的数据存储结构有顺序、链接、索引等存储结构。

2.数据结构的图形表示数据结构的图形表示有两个元素:●中间标有元素值的方框表示数据元素,称为数据结点●用有向线段表示数据元素之间的前后件关系,即有向线段从前件结点指向后件结点注意:在结构图中,没有前件的结点称为根结点,没有后件的结点称为终端结点,也称叶子结点。

3.线性结构与非线性结构如果一个数据元素都没有,该数据结构称为空数据结构;在空数据结构中插入一个新的元素后数据结构变为非空数据结构;将数据结构中的所有元素均删除,则该数据结构变成空数据结构。

如果一个非空的数据结构满足如下条件,则该数据结构为线性结构:●有且只有一个根结点●每一个结点最多只有一个前件,也最多只有一个后件线性结构又称线性表。

注意:在线性结构表中插入或删除元素,该线性表仍然应满足线性结构。

如果一个数据结构不满足线性结构,则称为非线性结构。

(三)线性表及其顺序存储结构1.基本概念线性表是最常用的数据结构,它由一组数据元素组成。

注意:这里的数据元素是一个广义的数据元素,并不仅仅是指一个数据。

如,矩阵、学生记录表等。

非空线性表的结构特征:●有且只有一个根结点,它无前件●有且只有一个终端结点,它无后件●除根结点和终端结点之外,所有的结点有且只有一个前件和一个后件。

线性表中结点的个数称为结点的长度n。

当n=0时,称为空表。

2.顺序存储结构顺序存储结构的特点:●线性表中所有的元素所占的存储空间是连续的●线性表中各数据元素在存储空间中是按逻辑顺序依次存放的通常,顺序存储结构中,线性表中每一个数据元素在计算机存储空间中的存储地址由该元素在线性表中的位置序号唯一确定。

线性表的顺序存储结构下的基本运算:●在指定位置插入一个元素●删除线性表中的指定元素●查找某个或某些特定的元素●线性表的排序●按要求将一个线性表拆分为多个线性表●将多个线性表合并为一个线性表●复制线性表●逆转一个线性表3.线性表的基本操作1)顺序表的插入运算在顺序存储结构的线性表中插入一个元素。

相关文档
最新文档