计算机二级公共基础知识(全)
计算机二级公共基础知识(全)

1.1 算法考点1 算法的基本概念计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
算法(algorithm)是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,同时是明确的;此顺序将在有限的次数后终止。
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。
1算法的基本特征(1)可行性(effectiveness):针对实际问题而设计的算法,执行后能够得到满意的结果。
(2)确定性(definiteness):算法中的每一个步骤都必须有明确的定义,不允许有模棱两可的解释和多义性。
(3)有穷性(finiteness):算法必需在有限时间内做完,即算法必需能在执行有限个步骤之后终止。
(4)拥有足够的情报:要使算法有效必需为算法提供足够的情报当算法拥有足够的情报时,此算法才最有效的;而当提供的情报不够时,算法可能无效。
2算法的基本要素(1)算法中对数据的运算和操作:每个算法实际上是按解题要求从环境能进行的所有操作中选择合适的操作所组成的一组指令序列。
计算机可以执行的基本操作是以指令的形式描述的。
一个计算机系统能执行的所有指令的集合,称为该计算机系统的指令系统。
计算机程序就是按解题要求从计算机指令系统中选择合适的指令所组成的指令序列在一般的计算机系统中,基本的运算和操作有以下4类:①算术运算:主要包括加、减、乘、除等运算;②逻辑运算:主要包括“与”、“或”、“非”等运算;③关系运算:主要包括“大于”、“小于”、“等于”、“不等于”等运算;④数据传输:主要包括赋值、输入、输出等操作。
(2)算法的控制结构:一个算法的功能不仅仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。
算法中各操作之间的执行顺序称为算法的控制结构。
算法的控制结构给出了算法的基本框架,它不仅决定了算法中各操作的执行顺序,而且也直接反映了算法的设计是否符合结构化原则。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
(完整word版)全国计算机二级公共基础知识--复习

全国计算机二级公共基础知识一、数据结构与算法数据结构指的是数据之间的相互关系,即数据的组织形式。
数据结构用来反映一个数据的内部构成,即一个数据由哪些成分构成、以什么方式构成、呈现什么样的结构。
数据结构有逻辑上的数据结构和物理上的数据结构之分。
逻辑上的数据结构反映数据之间的逻辑关系,而物理上的数据结构反映数据在计算机内部的存储安排.数据结构是数据存在的形式。
算法是解题的步骤,是指令的有限序列。
它们规定了解决某一特定类型问题的一系列运算,是对解题方案的准确与完整的描述。
一个问题的解决方案要以算法为基础。
1。
1 概念介绍◆算法的时间复杂度:算法的时间复杂度是指执行算法所需要的计算工作量。
算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n)其中n是问题的规模.例如,两个n阶矩阵相乘所需要的基本运算(即两个实数的乘法)次数为n3,即计算工作量为n3,也就是时间复杂度为n3。
◆算法的空间复杂度:算法的空间复杂度一般是指执行这个算法所需要的内存空间。
◆数据的逻辑结构数据元素相互之间的关系,称为结构.数据的逻辑结构:是指反映数据元素之间逻辑关系的数据结构。
◆数据的存储结构数据的存储结构:是数据的逻辑结构在计算机存储空间中的存放形式。
也称数据的物理结构。
各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的.同一种数据的逻辑结构可以根据需要表示成任意一种或几种不同的存储结构.数据的顺序存储方式:是将逻辑上相邻的结点存储在物理位置上亦相邻的存储单元里。
也就是将所有存储结点相继存入在一个连续相邻的存储区里.数据的链式存储方式:是在存储每个结点信息的同时,增加一个指针来表示结点间的逻辑关系.该方式不要求逻辑上相邻结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。
因此,链式存储结构中的每个结点都由两部分组成:一部分用于存储结点本身的信息,称为数据域;另一部分用于存储该结点的后继结点(或前驱结点)的存储单元地址,称为指针域。
全国计算机二级公共基础知识汇总

全国计算机二级公共基础知识汇总计算机二级公共基础知识是指计算机技术基础知识和应用能力的考核指标,主要包括计算机硬件知识、操作系统知识、计算机网络知识和应用软件知识等多个方面。
下面是对这些知识的详细汇总。
一、计算机硬件知识1.计算机硬件组成:CPU、内存、硬盘、显示器、键盘、鼠标等。
2.计算机的基本原理:二进制原理、信息表示与处理、逻辑门电路等。
3.中央处理器(CPU):主频、Cache、指令集、微架构等。
4.内存:主存和辅存的区别、存储器的层次结构、内存管理等。
5.硬盘:磁盘的组成、磁头的读写过程、磁盘的分区与格式化等。
6.显示器:分辨率、刷新率、色彩深度、投影仪等。
7.输入输出设备:键盘、鼠标、打印机、扫描仪、摄像头等。
8.扩展设备:声卡、显卡、网卡、USB接口等。
二、操作系统知识1.操作系统的功能和分类:任务管理、文件管理、内存管理、设备管理等。
2.Windows操作系统:常见的Windows版本、桌面环境、文件系统、任务管理等。
3.Linux操作系统:常见的Linux发行版、命令行界面、文件系统、用户管理等。
4.进程管理:进程的概念、进程调度、进程同步与互斥等。
5.线程管理:线程的概念、线程与进程的区别、线程同步与互斥等。
6.文件管理:文件的操作、文件的属性、文件系统的结构等。
7.输入输出管理:设备的管理、设备驱动程序、中断和DMA等。
8.网络管理:网络的概念、协议栈、IP地址、路由等。
三、计算机网络知识1.网络的分类:局域网、广域网、互联网、因特网等。
2.数据通信和网络协议:数据的发送和接收、分组交换、网络协议的分层等。
3.网络体系结构:TCP/IP体系结构、OSI参考模型等。
4.网络通信设备:路由器、交换机、集线器、网卡等。
5.网络地址:IP地址、子网掩码、默认网关、DNS等。
6.网络安全:网络攻击与防范、防火墙、VPN等。
7.网络应用:常用的网络服务和应用协议、浏览器、电子邮件等。
8.网络管理:网络配置、故障排除、网络性能监测等。
全国计算机等级考试二级教程——公共基础知识

全国计算机等级考试二级教程——公共基础知识一、计算机的基本组成部分。
计算机由硬件和软件两部分组成,硬件包括中央处理器(CPU)、存储器、输入输出设备等;软件包括操作系统、应用软件等。
1.中央处理器(CPU):计算机的核心部件,执行所有指令。
2.存储器:存储数据和程序。
3.输入设备:把数据从外部输入到计算机中,如键盘、鼠标、扫描仪等。
4.输出设备:把计算机处理的数据输出到外部,如打印机、显示器、音响等。
二、计算机的工作原理。
计算机的工作原理可以分为5个部分:输入、存储、处理、输出和控制。
1.输入:把数据或指令输入到计算机中,通过输入设备进行输入。
2.存储:将输入的数据或指令存储在内存中。
3.处理:根据指令执行相应的操作,如计算、比较、排序等。
4.输出:将处理后的结果输出到外部,通过输出设备进行输出。
5.控制:计算机通过控制器控制各个部件的运行,以完成整个计算过程。
三、计算机的分类。
计算机按其用途和规模可以分为大型机、中型机、小型机和微型计算机。
1.大型机:主要用于大型企业和政府机关,可以同时处理多个用户的请求,性能强劲。
2.中型机:主要用于中小型企业,相对于大型机规模和性能较小。
3.小型机:主要针对个体户、小企业和办公室等,处理能力比微型计算机强。
4.微型计算机:用于一般個人用戶和小型企业,具有价格低廉、体积小及易操作的特点,性能相对其他计算机较弱。
四、操作系统。
操作系统是管理计算机硬件和软件资源的程序,它在计算机的各个层次上进行控制和管理,包括处理器的管理、内存的管理、文件系统的管理等等。
常见的操作系统有:Windows、Linux、Unix、Android等。
五、计算机网络。
计算机网络是指把分布在不同地点的计算机集成在一起,实现资源共享和信息传输的系统。
计算机网络的分层体系结构一般被分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
其中物理层和数据链路层主要负责数据传输的物理和链路层面的工作;网络层和传输层负责数据传输的网络和传输方面的工作;会话层、表示层和应用层则负责数据传输的高层次工作。
全国计算机二级公共基础知识汇总

全国计算机二级公共基础知识汇总计算机二级公共基础知识是计算机专业人员必备的基本知识,包括计算机基本原理、操作系统、网络原理、数据库原理和计算机应用等方面的知识。
下面是全国计算机二级公共基础知识的完整汇总。
一、计算机基本原理:计算机硬件的组成和工作原理,包括中央处理器、存储器、输入输出设备等。
1.中央处理器:控制计算机的运算和控制活动,包括运算单元和控制单元。
2.存储器:计算机的主要组成部分,包括内存和外存。
3.输入输出设备:与计算机进行交互的设备,包括键盘、鼠标、显示器、打印机等。
二、操作系统:计算机的核心软件,负责管理和控制计算机的资源。
1.操作系统的功能:包括进程管理、内存管理、文件管理、设备管理和用户界面等。
2. 常见的操作系统:Windows、Linux、Unix等。
三、网络原理:计算机网络的基本原理和常用协议,包括网络拓扑、网络协议和安全性等。
1.网络拓扑:指网络中计算机的物理连接方式,包括星型、总线型、环型等。
2.网络协议:指计算机网络中不同计算机之间通信的规则和约定,常见的协议有TCP/IP、HTTP、FTP等。
3.网络安全性:指保护计算机网络不受到非法侵入和攻击的能力,包括防火墙、加密技术等。
四、数据库原理:数据库的基本原理和常用操作,包括数据模型、关系数据库和SQL语言等。
1.数据模型:指描述数据结构、数据操作和数据约束的概念工具,常见的数据模型有层次模型、网状模型和关系模型等。
2. 关系数据库:采用关系模型进行数据组织和管理的数据库,常见的关系数据库有Oracle、MySQL、SQL Server等。
3.SQL语言:结构化查询语言,用于对关系数据库进行查询、更新和管理。
五、计算机应用:计算机在不同领域应用的基本知识,包括办公软件、图像处理、网页设计等。
1.办公软件:包括文字处理、电子表格和演示文稿等。
3. 网页设计:指网页的布局、设计和开发,需要掌握HTML、CSS和JavaScript等技术。
全国计算机二级公共基础知识知识点

公共基础知识第一章数据结构与算法1.1 算法1.1.1 算法的基本概念1、算法的基本特征可行性、确定性、有穷性、拥有足够的情报所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
2、算法的基本要素(1)算法中对数据的运算和操作在一般的计算机系统中,基本的运算和操作:算术运算、逻辑运算、关系运算、数据传输(2)算法的控制结构描述算法的工具:传统流程图、N-S结构化流程图、算法描述语言等一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成3、算法设计基本方法列举法、归纳法、递推(本质上也属于归纳法,递推关系式往往是归纳的结果)、递归(基础也是归纳,分为直接递归和间接递归两种)、减半递推技术、回溯法(“试”)1.1.2 算法复杂度1、算法的时间复杂度(执行算法所需要的计算工作量)算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数算法的工作量=f(n),n是问题的规模两个n阶矩阵相乘所需要的基本运算(即两个实数的乘法)次数为n3,即计算工作量为n3,也就是时间复杂度为n3对于一个固定的规模,算法所执行的基本运算次数还可能与特定的输入有关——可以用两种方法来分析算法的工作量:平均性态、最坏情况复杂性2、算法的空间复杂度(执行这个算法所需要的内存空间)如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的1.2 数据结构的基本概念数据结构主要有三个方面的问题:●数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构●在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构●对各种数据结构进行的运算提高数据处理的效率,主要包括两个方面:●提高数据处理的速度●尽量节省在数据处理过程中所占用的计算机存储空间1.2.1 什么是数据结构无序表,只能用顺序查找对分查找只适用于有序表(在词典中查单词的方法类似于对分查找)数据结构是指相互有关联的数据元素的集合(向量、矩阵、图书馆中的图书卡片目录……)在数据处理领域中,通常把数据元素之间这种固有的关系简单地用前后件关系(直接前驱与直接后继关系)来描述,前后件关系所表示的实际意义随具体对象的不同而不同1、数据的逻辑结构一个数据结构应包含以下两方面的信息:●表示数据元素的信息●表示各数据元素之间的前后件关系(数据元素之间的前后件关系是指它们的逻辑关系,而与它们在计算机中的存储位置无关)一个数据结构可以表示成:B=(D,R)D为数据元素的集合,R为D中各数据元素之间的前后件关系(一般用二元组来表示)a与b是D中的两个数据,则二元组(a,b)表示a是b的前件,b是a的后件2、数据的存储结构各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般也不可能相同一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构1.2.2 数据结构的图形表示在数据结构中,没有前件的结点称为根结点,没有后件的结点称为终端结点(叶子结点)数据结构中除了根结点与终端结点外的其他结点一般称为内部结点在对数据结构的处理过程中,不仅数据结构中的结点(即数据元素)个数在动态地变化,而且,各数据元素之间的关系也有可能在动态地变化1.2.3 线性结构与非线性结构根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构和非线性结构如果一个非空的数据结构满足两个条件:●有且只有一个根结点●每一个结点最多有一个前件,也最多有一个后件则称该数据结构为线性结构。
全国计算机等级考试二级教程——公共基础知识
全国计算机等级考试二级教程——公共基础知识一、操作系统操作系统是计算机系统中最基本的软件,其作用是管理、协调并控制各类计算机资源,提供给应用程序一个运行环境。
操作系统的特点: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. 无线网络技术。
全国计算机二级公共基础知识
全国计算机全国计算机二级公共基础知识二级公共基础知识二级公共基础知识((重点部分重点部分))第一章 数据结构基础1.1算法1.1.1 算法的基本概念算法是解题方案的准确而完整的描述算法是解题方案的准确而完整的描述,,它不等于程序它不等于程序,,也不等计算方法也不等计算方法。
算法的基本特征可行性(effectiveness) 确定性(definiteness) 有穷性(finiteness) 拥有足够的情报 算法的时间复杂度执行算法所需要的计算工作量 与下列因素有关:书写算法的程序设计语言 ,编译产生的机器语言,代码质量 机器执行指令的速度 ,问题的规模 问题的规模函数 算法的工作量=f(n)算法中基本操作重复执行的频率T(n),是问题规模n 的某个函数f(n),记作记作::T(n)=O(f(n)) 记号“O ”读作“大O ”。
表示随问题规模n 的增加,算法执行时间的增长率和f(n)相应增加。
常见算法复杂度常见算法复杂度::O(1):常数阶 O(n):作线性阶 O(n2):平方阶 O(n3):立方阶 O(logn):对数阶 O(2n):指数阶算法的空间复杂度算法执行过程中所需的最大存储空间 存储量包括以下三部分算法程序所占的空间 ,输入的初始数据所占的存储空间 ,算法执行过程中所要的额外空间1.2 数据结构的基本概念数据的逻辑结构对数据元素之间的逻辑关系的描述只抽象地反映数据元素之间的逻辑关系,与计算机中的存储无关 数据的存储结构数据的逻辑结构在计算机存储空间中的存放形式 常用的存储结构:顺序, 链式, 索引一种数据结构可根据需要采用不同的存储结构。
采用不同的存储结构,其数据处理的效率是不同 线性结构如果一个非空数据结构满足下列两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件。
常见的线性结构有:线性表、栈与队列、线性链表非线性结构1.数据的逻辑结构2、数据的存储结构3、数据的运算:检索、排序、插入、删除、修改等。
计算机二级公共基础知识完整
第一章数据结构及算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分常常考查的是算法困难度, 数据结构的概念, 栈, 二叉树的遍历, 二分法查找,读者应对此部分进行重点学习。
具体重点学习知识点: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.八进制基数为8,因此在八进制数中可使用的数字符号是0和1。
A、正确B、错误*2.第三代计算机时代是从1965年到1971年。
A、正确*B、错误3.硬盘的转速指的是每秒多少转。
A、正确B、错误*4.计算机存储的基本单位的比特。
A、正确B、错误*5.显示器的垂直扫描频率又称为刷新率,刷新率越高图像越稳定,闪烁感越小。
A、正确*B、错误6.每个汉字具有唯一的内码和外码。
A、正确B、错误*7.在Windows中,可以对桌面上的图标顺序进行重新排列。
A、正确*B、错误8.在数据表中设置字段标题后,如果查询中输入了该字段也将显示字段标题而不是字段名。
A、正确B、错误*9.查询记录表中显示的字段必须是数据库中已有的字段。
A、正确B、错误*10.两个之间必须存在着相互关联的字段,才能在两个表之间建立关系。
A、正确*B、错误11.回收站是内存中的一块区域,用于暂存被删除的文件。
A、正确B、错误*12.共享软件是作者免费让用户使用的软件,不需要缴费购买。
A、正确B、错误*13.删除多余的输入法可以提高计算机的性能。
A、正确*B、错误14.剪切板中只能存放文字,不能存放图像。
A、正确B、错误*15.证书机制是非对称密码算法的一种应用。
A、正确*B、错误16.计算机网络的通信子网负责全网面向用户的数据处理与管理。
A、正确B、错误*。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1 算法考点1 算法的基本概念计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
算法(algorithm)是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,同时是明确的;此顺序将在有限的次数后终止。
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。
1算法的基本特征(1)可行性(effectiveness):针对实际问题而设计的算法,执行后能够得到满意的结果。
(2)确定性(definiteness):算法中的每一个步骤都必须有明确的定义,不允许有模棱两可的解释和多义性。
(3)有穷性(finiteness):算法必需在有限时间内做完,即算法必需能在执行有限个步骤之后终止。
(4)拥有足够的情报:要使算法有效必需为算法提供足够的情报当算法拥有足够的情报时,此算法才最有效的;而当提供的情报不够时,算法可能无效。
2算法的基本要素(1)算法中对数据的运算和操作:每个算法实际上是按解题要求从环境能进行的所有操作中选择合适的操作所组成的一组指令序列。
计算机可以执行的基本操作是以指令的形式描述的。
一个计算机系统能执行的所有指令的集合,称为该计算机系统的指令系统。
计算机程序就是按解题要求从计算机指令系统中选择合适的指令所组成的指令序列在一般的计算机系统中,基本的运算和操作有以下4类:①算术运算:主要包括加、减、乘、除等运算;②逻辑运算:主要包括“与”、“或”、“非”等运算;③关系运算:主要包括“大于”、“小于”、“等于”、“不等于”等运算;④数据传输:主要包括赋值、输入、输出等操作。
(2)算法的控制结构:一个算法的功能不仅仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。
算法中各操作之间的执行顺序称为算法的控制结构。
算法的控制结构给出了算法的基本框架,它不仅决定了算法中各操作的执行顺序,而且也直接反映了算法的设计是否符合结构化原则。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
(3)算法设计的基本方法计算机算法不同于人工处理的方法,下面是工程上常用的几种算法设计,在实际应用时,各种方法之间往往存在着一定的联系。
(1)列举法列举法是计算机算法中的一个基础算法。
列举法的基本思想是,根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的。
列举法的特点是算法比较简单。
但当列举的可能情况较多时,执行列举算法的工作量将会很大。
因此,在用列举法设计算法时,使方案优化,尽量减少运算工作量,是应该重点注意的。
(2)归纳法归纳法的基本思想是,通过列举少量的特殊情况,经过分析,最后找出一般的关系。
从本质上讲,归纳就是通过观察一些简单而特殊的情况,最后总结出一般性的结论。
(3)递推递推是指从已知的初始条件出发,逐次推出所要求的各中间结果和最后结果。
其中初始条件或是问题本身已经给定,或是通过对问题的分析与化简而确定。
递推本质上也属于归纳法,工程上许多递推关系式实际上是通过对实际问题的分析与归纳而得到的,因此,递推关系式往往是归纳的结果。
对于数值型的递推算法必须要注意数值计算的稳定性问题。
(4)递归人们在解决一些复杂问题时,为了降低问题的复杂程度(如问题的规模等),一般总是将问题逐层分解,最后归结为一些最简单的问题。
这种将问题逐层分解的过程,实际上并没有对问题进行求解,而只是当解决了最后那些最简单的问题后,再沿着原来分解的逆过程逐步进行综合,这就是递归的基本思想。
递归分为直接递归与间接递归两种。
(5)减半递推技术实际问题的复杂程度往往与问题的规模有着密切的联系。
因此,利用分治法解决这类实际问题是有效的。
工程上常用的分治法是减半递推技术。
所谓“减半”,是指将问题的规模减半,而问题的性质不变;所谓“递推”,是指重复“减半”的过程。
(6)回溯法在工程上,有些实际问题很难归纳出一组简单的递推公式或直观的求解步骤,并且也不能进行无限的列举。
对于这类问题,一种有效的方法是“试”。
通过对问题的分析,找出一个解决问题的线索,然后沿着这个线索逐步试探,若试探成功,就得到问题的解,若试探失败,就逐步回退,换别的路线再逐步试探。
4算法设计的要求通常一个好的算法应达到如下目标:(l)正确性(correctness)正确性大体可以分为以下4个层次:①程序不含语法错误;②程序对于几组输入数据能够得出满足规格说明要求的结果;③程序对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果;④程序对于一切合法的输入数据都能产生满足规格说明要求的结果。
(2)可读性(readability)算法主要是为了方便入的阅读与交流,其次才是其执行。
可读性好有助于用户对算法的理解;晦涩难懂的程序易于隐藏较多错误,难以调试和修改。
(3)健壮性(robustness)当输入数据非法时,算法也能适当地做出反应或进行处理,而不会产生莫名其妙的输出结果。
(4)效率与低存储量需求效率指的是程序执行时,对于同一个问题如果有多个算法可以解决,执行时间短的算法效率高;存储量需求指算法执行过程中所需要的最大存储空间考点2 算法的复杂度1算法的时间复杂度算法的时间复杂度,是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法“运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),它是问题的规模函数。
即算法的工作量=f(n)例如,在N×N矩阵相乘的算法中,整个算法的执行时间与该基本操作(乘法)重复执行的次数n3成正比,也就是时间复杂度为n3,即f(n)=O(n3)在有的情况下,算法中的基本操作重复执行的次数还随问题的输入数据集不同而不同。
例如在起泡排序的算法中,当要排序的数组a初始序列为自小至大有序时,基本操作的执行次数为氏当初始序列为自大至小有序时,基本操作的执行次数为n(n- 1)/2。
对这类算法的分析,可以采用以下两种方法来分析。
(1)平均性态(Average Behavior)所谓平均性态是指各种特定输入下的基本运算次数的加权平均值来度量算法的工作量。
设x是所有可能输入中的某个特定输入,p(x)是x出现的概率(即输入为x的概率),t(x)是算法在输入为x时所执行的基本运算次数,则算法的平均性态定义为其中Dn表示当规模为n时,算法执行的所有可能输入的集合。
(2)最坏情况复杂性(Worst-case Complexity)所谓最坏情况分析,是指在规模为n时,算法所执行的基本运算的最大次数。
2算法的空间复杂度算法的空间复杂度是指执行这个算法所需要的内存空间。
一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。
其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。
如果额外空间量相对于问题规模来说是常数,则称该算法是原地(in place)工作的。
在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。
考点3 数据结构的定义数据结构(data structure)是指相互之间存在一种或多种特定关系的数据元素的集合,即数据的组织形式。
数据结构作为计算机的一门学科,主要研究和讨论以下三个方面: (l)数据集合中个数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据元素进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
讨论以上问题的日的是为了提高数据处理的效率,所谓提高数据处理的效率有两个方面:(l)提高数据处理的速度;(2)尽量节省在数据处理过程中所占用的计算机存储空间。
数据(data):是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素(data element):是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据对象(data object):是性质相同的数据元素的集合,是数据的一个子集。
在一般情况下,在具有相同特征的数据元素集合中,各个数据元素之间存在有某种关系(即连续),这种关系反映了该集合中的数据元素所固有的一种结构。
在数据处理领域中,通常把数据元素之间这种固有的关系简单地用前后件关系(或直接前驱与直接后继关系)来描述。
前后件关系是数据元素之间的一个基本关系,但前后件关系所表示的实际意义随具体对象的不同而不同。
一般来说,数据元素之间的任何关系都可以用前后件关系来描述。
1数据的逻辑结构数据结构是指反映数据元素之间的关系的数据元素集合的表示。
更通俗地说,数据结构是指带有结构的数据元素的集合。
所谓结构实际上就是指数据元素之间的前后件关系。
一个数据结构应包含以下两方面信息:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的逻辑结果是对数据元素之间的逻辑关系的描述。
它可以用一嘎数据元素的集合和定义在此集合中的若干关系来表示。
数据的逻辑结构包括集合、线性结构、树型结构和图形结构四种。
线性结构:数据元素之间构成一种顺序的线性关系。
树型结构:数据元素之间形成一种树型的关系数据的逻辑结构有两个要素:一是数据元素的集合,通常记为D; 二是D上的关系,它反映了数据元素之间的前后件关系,通常记为R。
一个数据结构可以表示成B=(C,R)其中B表示数据结构。
为了反映D中各元素之间的前后件关系,一般用二元组来表示。
例如,复数是一种数据结构,在计算机科学中,复数可取如下定义:B=(C,R)其中,C是含有两个实数的集合{c1,c2};R是定义在集合C上的一种关系{<c1,c2>},其中有序偶{<c1,c2>}表示c1是复数的实部,c2是复数的虚部。
2数据的存储结构数据的逻辑结构在计算机存储空间中的存放形式,称为数据的存储结构(也称为数据的物理结构)。
由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此,为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。
一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的结构有顺序、链接、索引等存储结构而采用不同的存储结构,其数据处理的效率是不同的。
因此,在进行数据处理是,选择合适的存储结构是很重要的。
考点4 数据结构的图形表示数据结构除了用二元关系表示外,还可以直观地用图形表示。