全国计算机二级公共基础知识复习(解析版)
- 格式:doc
- 大小:230.50 KB
- 文档页数:17
计算机二级公共基础知识汇总(附习题答案)(超详细)1.了解算法的基本概念和一些常用的算法,学会计算算法的时间复杂度;2.掌握数据结构的基本概念,并了解数据的逻辑结构和存储结构,学会利用图形的方式表示数据结构;3.了解线性表的基本概念,并掌握线性表的顺序存储结构以及顺序存储的线性表的基本运算;4.了解栈和队列的基本概念,并掌握它们的基本运算;5.了解线性链表的基本概念,并掌握线性链表的基本运算,同时,了解循环链表的基本概念和基本操作6.理解树的概念,尤其是二叉树的基本概念和相关性质,掌握二叉树的存储结构和遍历技术;7.掌握查找技术,学会利用顺序查找和二分查找在数列中查找指定的数据;8.学会利用相关的排序技术实现无序数列的排序操作。
1.了解程序设计的方法,以及程序设计风格确立的一些因素,掌握程序设计的基本规则;2.了解结构化程序设计的基本原则,掌握结构化程序设计的基本结构与特点;3.了解面向对象的程序设计方法,并理解面向对象方法的一些基本概念。
3.了解软件工程的基本概念;4.了解软件工程过程与软件的生命周期,以及软件工程的目标和原则;5.了解利用结构化分析法进行软件工程中的需求分析的方法,并了解需求分析的方法和需要完成的任务;6.了解数据流图的使用方法;7.了解如何利用结构化设计方法进行软件设计,并了解软件设计的一些常用用工具;8.了解软件测试的目的和方法,以及软件测试的准则,了解常用的软件测试方法的区别和各自的功能与特点;9.了解程序调试的方法和原则。
1.了解数据库系统的基本概念,以及数据库系统的发展;2.了解数据模型的基本概念,并对E-R模型、层次模型、网状模型和关系模型进行了解,并掌握关系模型的数据结构、关系的操作和数据约束等知识;3.了解关系模型的基本操作,掌握关系模型的基本运算及扩充运算;4.了解数据库的设计与管理,掌握数据库设计的几个阶段的方法和特点。
软件工程原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
计算机二级公共基础知识题库及答案分析在计算机技术发展日新月异的今天,计算机二级公共基础知识已经成为了一项非常重要的考试内容。
为了帮助考生更好地备考和理解知识点,本文将介绍一份计算机二级公共基础知识题库,并提供详细的答案分析。
一、计算机基础知识1. 计算机硬件是由哪些基本组成部分构成的?答案:计算机硬件由中央处理器(CPU)、内存、硬盘、显示器、键盘、鼠标等多个基本组成部分构成。
分析:计算机硬件是计算机系统中的物理部分,包括了处理器、存储器、输入设备、输出设备等。
在答题时要注意列举全面,确保不遗漏任何一个部分。
2. 什么是二进制?答案:二进制是一种以2为基数的数字系统,只包含0和1两个数字。
分析:二进制是计算机中最基本的数字系统,计算机内部所有的数据都是以二进制形式进行存储和运算的。
这是非常重要的基础知识点,要描述清楚二进制的特点。
二、操作系统1. 操作系统的主要功能是什么?答案:操作系统的主要功能包括文件管理、内存管理、进程管理和设备管理。
分析:操作系统是计算机系统的核心软件,它负责管理和控制计算机的各种资源,确保计算机能够正常高效地运行。
理解操作系统的主要功能对于理解计算机系统的工作原理非常重要。
2. 什么是多任务操作系统?答案:多任务操作系统是指能够同时处理多个任务的操作系统。
分析:多任务操作系统允许多个程序同时运行,通过时间片轮转或优先级调度等方式来管理多个任务的执行。
理解多任务操作系统的概念对于理解操作系统的运行机制和任务调度算法非常重要。
三、网络基础知识1. 什么是IP地址?答案:IP地址是用来标识互联网上的计算机或者网络设备的一串数字。
分析:IP地址是互联网中计算机或者网络设备的唯一标识,它由一串数字组成,分为IPv4和IPv6两种格式。
理解IP地址的概念和格式对于网络通信的理解和配置非常重要。
2. TCP/IP协议栈包括哪几个层次?答案:TCP/IP协议栈包括物理层、数据链路层、网络层、传输层和应用层。
全国计算机等级二级公共基础知识下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!计算机等级二级公共基础知识一、计算机系统基本知识。
第一章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
1、算法的时间复杂度是指_____A___。
A)算法执行过程中所需要的基本运算次数B)算法程序中的指令条数C)执行算法程序所需要的时间D)算法程序的长度2、算法的空间复杂度是指___B_____。
A)算法程序所占的存储空间B)算法执行过程中所需要的存储空间C)算法程序的长度D)算法程序中的指令条数3、下列叙述中正确的是__C______。
A)线性链表是非线性结构B)二叉树是线性结构C)线性表是线性结构D)栈与队列是非线性结构4、数据的存储结构是指___D_____。
A)数据在计算机中的顺序存储方式B)存储在外存中的数据C)数据所占的存储空间量D)数据的逻辑结构在计算机中的表示5、下列关于队列的叙述中正确的是__A______。
A)队列是先进先出的线性表B)队列是先进后出的线性表C)在队列中只能插入数据D)在队列中只能删除数据6、下列关于栈的叙述中正确的是___B_____。
A)栈是先进先出的线性表B)栈是先进后出的线性表C)在栈中只能插入数据D)在栈中只能删除数据7、设有下列二叉树:对此二叉树中序遍历的结果为________。
A)ABDECFB)DEBFCAC)ABCDEFD)DBEAFC8、在深度为5的满二叉树中,叶子结点的个数为____D____。
A)16B)15C)32D)319、对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为__C______。
A)(n+1)/2B)n/2C)n+1D)n10、设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1。
则T中的叶子结点数为___C_____。
A)6B)5C)8D)711、在长度为n的有序线性表中进行___折半查找法_____查找,需要的比较次数为log2n。
@12、设一棵完全二叉树共有700个结点,则在该二叉树中有__699______个叶子结点。
13、设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为____DEBFCA____。
全国计算机二级公共基础知识一、数据结构与算法数据结构指的是数据之间的相互关系,即数据的组织形式。
数据结构用来反映一个数据的内部构成,即一个数据由哪些成分构成、以什么方式构成、呈现什么样的结构。
数据结构有逻辑上的数据结构和物理上的数据结构之分。
逻辑上的数据结构反映数据之间的逻辑关系,而物理上的数据结构反映数据在计算机内部的存储安排。
数据结构是数据存在的形式。
算法是解题的步骤,是指令的有限序列。
它们规定了解决某一特定类型问题的一系列运算,是对解题方案的准确与完整的描述。
一个问题的解决方案要以算法为基础。
1.1 概念介绍◆算法的时间复杂度:算法的时间复杂度是指执行算法所需要的计算工作量。
算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n)其中n是问题的规模。
例如,两个n阶矩阵相乘所需要的基本运算(即两个实数的乘法)次数为n3,即计算工作量为n3,也就是时间复杂度为n3。
◆算法的空间复杂度:算法的空间复杂度一般是指执行这个算法所需要的内存空间。
◆数据的逻辑结构数据元素相互之间的关系,称为结构。
数据的逻辑结构:是指反映数据元素之间逻辑关系的数据结构。
◆数据的存储结构数据的存储结构:是数据的逻辑结构在计算机存储空间中的存放形式。
也称数据的物理结构。
各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的。
同一种数据的逻辑结构可以根据需要表示成任意一种或几种不同的存储结构。
数据的顺序存储方式:是将逻辑上相邻的结点存储在物理位置上亦相邻的存储单元里。
也就是将所有存储结点相继存入在一个连续相邻的存储区里。
数据的链式存储方式:是在存储每个结点信息的同时,增加一个指针来表示结点间的逻辑关系。
该方式不要求逻辑上相邻结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。
因此,链式存储结构中的每个结点都由两部分组成:一部分用于存储结点本身的信息,称为数据域;另一部分用于存储该结点的后继结点(或前驱结点)的存储单元地址,称为指针域。
全国计算机等级考试二级教程——公共基础知识一、操作系统基础知识1.操作系统是什么?请简要说明其作用和功能。
操作系统是计算机系统中的一种软件,它负责管理和控制计算机硬件资源,并为用户程序提供运行环境。
其主要功能包括进程管理、内存管理、文件系统管理和设备管理等。
2.请列举几种常见的操作系统。
常见的操作系统包括Windows、Linux、Mac OS、Android等。
3.什么是进程?什么是线程?进程是正在执行的程序的实例,是操作系统资源分配与调度的基本单位。
线程是进程中的一个执行单元,一个进程可以包含多个线程。
4.什么是文件系统?文件系统是一种组织和管理计算机存储设备上数据的方法,用于存储和检索文件,并提供对文件的访问控制和保护。
二、计算机网络基础知识1.什么是IP地址?IP地址的作用是什么?IP地址是因特网协议(IP)的网络接口的标识,用于唯一地标识和定位网络上的计算机设备。
IP地址的作用是用于在数据通信中确定源和目标的地址。
2. 请简述Internet的结构。
Internet的结构是由成千上万个相互连接的计算机网络组成的,形成一个全球性的网络。
它使用一种称为互联网协议(IP)的通信协议进行数据传输,通过路由器相互连接。
3.什么是HTTP协议?HTTP协议有哪些特点?HTTP协议(Hypertext Transfer Protocol)是一种用于从服务器传输超文本到客户端的协议。
它的特点包括无连接性、无状态性和可扩展性。
三、数据库基础知识1.什么是数据库?数据库的作用是什么?数据库是存储、管理和组织数据的集合,它提供了一种结构化的方式来组织和存储数据,以便于数据的存取和处理。
数据库的作用是存储和管理大量的数据,并为用户提供数据查找、插入、更新和删除等功能。
2.请简述关系数据库的特点和优点。
关系数据库是一种以关系为基础的数据模型。
它的特点包括数据的结构化、数据间的关系建立、数据的操作和约束等。
关系数据库的优点是数据的一致性、数据的可扩展性、数据的安全性和数据的完整性。
计算机二级考试公共基础知识试题及答案(2)份计算机二级考试公共基础知识试题及答案 1对于数据库系统,负责定义数据库内容,决定存储结构和存取策略及安全授权等工作的是_______。
(考点1)A)应用程序员B)用户C)数据库管理员D)数据库管理系统的软件设计员解析:数据库管理员(简称DBA),具有如下的职能:设计、定义数据库系统;帮助用户使用数据库系统;__与__数据库系统的使用和运行;改进和重组数据库系统;转储和恢复数据库;重构数据库。
所以,定义数据库内容,决定存储结构和存取策略及安全授权等是数据库管理员(DBA)的职责。
答案:C)在数据库管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
在这几个阶段中,数据__性最高的是_______。
(考点2)A)数据库系统B)文件系统C)人工管理D)数据项管理解析:在人工管理阶段,数据无法共享,冗余度大,不__,完全依赖于程序。
在文件系统阶段,数据共享性差,冗余度大,__性也较差。
所以B)选项和C)选项均是错误的。
答案:A)在数据库系统中,当总体逻辑结构改变时,通过改变_______,使局部逻辑结构不变,从而使建立在局部逻辑结构之上的应用程序也保持不变,称之为数据和程序的逻辑__性。
(考点3)A)应用程序B)逻辑结构和物理结构之间的映射C)存储结构D)局部逻辑结构到总体逻辑结构的映射解析:模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。
当模式改变时,由数据库管理员对外模式/模式映射做相应改变,可以使外模式保持不变。
应用程序是依据数据的外模式编写的,从而应用程序也不必改变。
保证了数据与程序的逻辑__性,即数据的逻辑__性。
答案:D)数据库系统依靠_________数据的__性。
(考点4)A)具有封装机制B)定义完整性约束条件C)模式分级,各级模式之间的映射D)DDL语言和DML语言互相__解析:。
数据库的三级模式结构指数据库系统由外模式、模式和内模式3级构成。
第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
电脑解题的过程实际上是在实施某种算法,这种算法称为电脑算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:〔1〕算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的电脑系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
〔2〕算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的电脑上运行,效率均不同。
这说明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与电脑硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模〔通常用整数n表示〕,它是问题规模的函数。
计算机二级公共基础知识重点讲解汇总章节名称内容简介第一章数据结构与算法本章主要介绍算法的基本概念、数据结构的定义、线性表、树等重点知识的讲解。
第二章程序设计基础本章主要介绍程序设计风格、结构化程序设计、面向对象程序设计等重点知识的讲解。
第三章软件工程基础本章主要介绍软件工程的基本概念、结构化分析方法、软件设计等重点知识的讲解。
第四章数据库设计基础本章主要介绍数据库、数据库管理系统(DBMS)、数据库系统、数据模型、关系运算、专门关系运算、数据库设计步骤等重点知识的讲解。
第一章数据机构与算法数据结构与算法◆算法的基本概念1. 算法:是对问题处理方案的正确而完整的描述,是求解问题的方法,是指令的有效序列。
2. 具有5个特性:(1)有穷性(在有穷步后完成)算法程序的运行时间是有限的(2)确定性(每一步都有确定的含义)(3)可行性(4)输入(一个算法有零个或多个输入)(5)输出(一个算法有一个或多个输出)3. 算法的复杂度包括:时间复杂度和空间复杂度。
二者没有必然的联系。
时间复杂度:执行算法所需要的计算工作量或基本运算次数。
空间复杂度:算法所需要的空间的度量。
◆数据结构的定义1. 数据结构包括数据的逻辑结构、数据的存储结构、数据的操作数据的逻辑结构:数据的外部结构,指各数据元素之间的逻辑关系,反映人们对数据含义的解释。
包括:线性结构(线性表、栈、队列)和非线性结构(树和图)数据的存储结构:数据的物理结构,指数据的逻辑结构在计算机中的表示。
一个逻辑结构可以有多种存储结构。
◆线性表:线性表中元素的个数n(n>=0)定义为线性表的长度。
顺序存储是线性表的一种最常用的存储方式。
线性表的顺序存储结构和线性表的链式存储结构分别是随机存取的存储结构和顺序存取的存储结构。
1.栈:是限定在表尾进行插入和删除操作的线性表。
具有记忆功能只能顺序存储(错)允许插入和删除的一端叫栈顶。
另一端叫栈底。
后进先出的线性表2队列:是限定在一端插入而在另一端删除,插入端叫队尾,删除端叫对头。
二级公共基础知识(VB C语言 VFP等)1.1 算法算法:是解题方案的准确而完整的描述。
通俗地说,算法就是计算机解题的过程。
算法不等于程序。
算法的特性如下:(1)确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有二义性;(2)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止;(3)可行性,算法原则上能够精确地执行;(4)拥有足够的情报。
算法效率的度量—算法时间复杂度和算法空间复杂度。
算法时间复杂度:指执行算法所需要的计算工作量。
即算法执行过程中所需要的基本运算次数算法空间复杂度:指执行这个算法所需要的内存空间1.2 数据结构的基本概念数据结构:指相互有关联的数据元素的集合。
数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
线性结构的条件,(一个非空数据结构):(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
1.3 线性表及其顺序存储结构线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
顺序表的运算:查找、插入、删除。
1.4线性链表数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。
结点由两部分组成:(1) 用于存储数据元素值,称为数据域;(2) 用于存放指针,称为指针域,用于指向前一个或后一个结点。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
线性链表的基本运算:查找、插入、删除。
1.5栈和队列栈:限定在一端进行插入与删除的线性表。
其允许插入与删除的一端称为栈顶,用指针top表示栈顶位置。
不允许插入与删除的另一端称为栈底,用指针bottom表示栈底。
栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。
栈的存储方式有顺序存储和链式存储。
栈的基本运算:(1) 入栈运算,在栈顶位置插入元素;(2) 退栈运算,删除元素(取出栈顶元素并赋给一个指定的变量);(3) 读栈顶元素,将栈顶元素赋给一个指定的变量,此时指针无变化。
队列:指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。
用rear指针指向队尾,用front指针指向队头元素的前一个位置。
队列是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。
队列运算:(1) 入队运算:从队尾插入一个元素;(2) 退队运算:从队头删除一个元素;计算循环队列的元素个数:“尾指针减头指针”,若为负数,再加其容量即可。
即:当尾指针-头指针>0 时,尾指针-头指针当尾指针-头指针<0 时,尾指针-头指针+容量计算栈中元素的个数:栈底–栈顶 +11.6 树与二叉树1、树的基本概念树是一种简单的非线性结构,其所有元素之间具有明显的层次特性。
在树结构中,每一个结点只有一个前件,称为父结点。
没有前件的结点只有一个,称为树的根结点,简称树的根。
每一个结点可以有多个后件,称为该结点的子结点。
没有后件的结点称为叶子结点。
在树结构中,一个结点所拥有的后件的个数称为该结点的度。
所有结点中最大的度称为树的度。
树的最大层次称为树的深度。
2、二叉树及其基本性质满足下列两个特点的树,即为二叉树(1)非空二叉树只有一个根结点;(2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
3、满二叉树与完全二叉树满二叉树:除最后一层外,每一层上的所有结点都有两个子结点。
完全二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
下图a表示的是满二叉树,下图b表示的是完全二叉树:4、二叉树的遍历二叉树的遍历是指不重复地访问二叉树中的所有结点。
二叉树的遍历可以分为以下三种:(1)前序遍历(DLR):(2)中序遍历(LDR):(3)后序遍历(LRD) 1.7 查找技术查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素。
查找结果:(查找成功:找到;查找不成功:没找到。
)平均查找长度:查找过程中关键字和给定值比较的平均次数。
查找分为:二分法查找对于长度为n的有序线性表,最坏情况只需比较次,而顺序查找需要比较n次。
1.8 排序技术排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。
1、交换类排序法(冒泡排序,快速排序)2、插入类排序法(简单插入排序,希尔排序)3、选择类排序法(简单选择排序,堆排序)冒泡排序法,快速排序法,简单插入排序法,简单选择排序法,最坏需要比较的次数为n(n-1)/2希尔排序,最坏需要比较的次数为堆排序,最坏需要比较的次数为2.1 程序设计设计方法和风格"清晰第一、效率第二"已成为当今主导的程序设计风格。
2.2 结构化程序设计结构化程序设计方法的四条原则是:1、自顶向下;2、逐步求精;3、模块化;4、限制使用goto语句。
结构化程序的基本结构(1)顺序结构(2)选择结构(3)循环结构2.3 面向对象的程序设计面向对象方法的优点:(1)与人类习惯的思维方法一致;(2)稳定性好;(3)可重用性好;(4)易于开发大型软件产品;(5)可维护性好。
对象是面向对象方法中最基本的概念,可以用来表示客观世界中的任何实体,对象是实体的抽象。
面向对象的程序设计方法中,对象是由数据的容许的操作组成的封装体,是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组表示其静态特征的属性和它可执行的一组操作组成。
操作描述了对象执行的功能,是对象的动态属性,操作也称为方法或服务。
对象的基本特点:(1)标识惟一性;(2)分类性;(3)多态性;(4)封装性; (5)模块独立性好。
类是指具有共同属性、共同方法的对象的集合。
类是关于对象性质的描述。
类是对象的抽象,对象是其对应类的一个实例。
消息是一个实例与另一个实例之间传递的信息。
对象间的通信靠消息传递。
它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。
继承是使用已有的类定义作为基础建立新类的定义技术,广义指能够直接获得已有的性质和特征,而不必重复定义他们。
继承具有传递性,一个类实际上继承了他上层的全部基类的特性。
继承分单继承和多重继承。
多态性是指同样的消息被不同的对象接受时可导致完全不同的行动的现象。
3.1 软件工程基本概念1、软件的相关概念计算机软件是包括程序、数据及相关文档的完整集合。
软件的特点包括:1)软件是一种逻辑实体,而不是物理实体,具有抽象性;2)软件的生产与硬件不同,它没有明显的制作过程;3)软件在运行、使用期间不存在磨损、老化问题;4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;5)软件复杂性高,成本昂贵;6)软件开发涉及诸多的社会因素。
2、软件危机与软件工程软件工程源自软件危机。
所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件工程的主要思想是将工程化原则运用到软件开发过程,它包括3个要素:方法、工具和过程。
方法是完成软件工程项目的技术手段;工具是支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。
软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
3、软件生命周期软件生命周期:软件产品从提出、实现、使用维护到停止使用退役的过程。
软件生命周期分为软件定义、软件开发及软件运行维护三个阶段:1)软件定义阶段:包括制定计划和需求分析。
制定计划:确定总目标;可行性研究;探讨解决方案;制定开发计划。
需求分析:对待开发软件提出的需求进行分析并给出详细的定义。
2)软件开发阶段:软件设计:分为概要设计和详细设计两个部分。
软件实现:把软件设计转换成计算机可以接受的程序代码。
软件测试:在设计测试用例的基础上检验软件的各个组成部分。
3)软件运行维护阶段:软件投入运行,并在使用中不断地维护,进行必要的扩充和删改。
4、软件工程的目标和与原则(1)软件工程目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。
(2)软件工程需要达到的基本目标应是:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发,及时交付使用。
(3)软件工程原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
1)抽象:2)信息隐蔽:3)模块化:4)局部化:5)确定性:6)一致性:7)完备性:8)可验证性:3.2 结构化分析方法1、需求分析需求分析方法有:1)结构化需求分析方法;2)面向对象的分析方法。
2、结构化分析方法结构化分析方法是结构化程序设计理论在软件需求分析阶段的应用。
结构化分析方法的实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
结构化分析的常用工具:1)数据流图(DFD);2)数据字典(DD);3)判定树;4)判定表。
数据流图的基本图形元素:加工(转换):输入数据经加工变换产生输出。
数据流:沿箭头方向传送数据的通道,一般在旁边标注数据流名。
存储文件(数据源):表示处理过程中存放各种数据的文件。
源,潭:表示系统和环境的接口,属系统之外的实体。
3.3 结构化设计方法1、软件设计的基础从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。
从工程角度来看,软件设计分两步完成,即概要设计和详细设计。
概要设计:又称结构设计,将软件需求转化为软件体系结构,确定系统级接口、全局数据结构或数据库模式。
详细设计:确定每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。
软件设计的基本原理包括:抽象、模块化、信息隐蔽和模块独立性。
1)抽象。
抽象是一种思维工具,就是把事物本质的共同特性提取出来而不考虑其他细节。
2)模块化。
解决一个复杂问题时自顶向下逐步把软件系统划分成一个个较小的、相对独立但又不相互关联的模块的过程。
3)信息隐蔽。
每个模块的实施细节对于其他模块来说是隐蔽的。
4)模块独立性。
软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。
模块分解的主要指导思想是信息隐蔽和模块独立性。