、|
!_
一种人总要走陌生的路,看陌生的风景,听陌生的歌,然后在某个不经意的瞬间,你会发现,原本费尽心机想要忘掉的事情真的就这样忘掉了..
算法的复杂度重要包括时间复杂度和空间复杂度。
算法的时间复杂度是指执行算法所需要的计算工作量。
算法的空间复杂度是指执行这个算法所需要的内存空间。
一种数据的逻辑构造根据需要可以表到达多种存储构造。而采用不一样的存储构造,其数据处理的效率是不一样。
线性构造又称线性表,线性构造与非线性构造都可以是空的数据构造。
线性表的次序存储构造具有如下两个基本特点:①线性表中所有元素所占的存储空间是持续的;②线性表中各数据元素在存储空间中是按逻辑次序依次寄存的。
栈是一种特殊的线性表,在这种线性表的构造中,一端是封闭的,不容许进行插入与删除元素;另一端是开口的,容许插入与删除元素。先进后出或后进先出。
队列(queue)是指容许在一端进行插入、而在另一端进行删除的线性表。后进后出或先进先出。
队列的次序存储构造一般采用循环队列的形式。
元素变动频繁的大线性表不适宜采用次序存储构造,而是采用链式存储构造。
在链式存储方式中,规定每个结点由两部分构成:一部分用于寄存数据元素值,称为数据域;另一部分用于寄存指针,称为指针域。
树(tree)是一种简朴的非线性构造。属于层次模型。
二叉树一般采用链式存储构造
二叉树的基本性质
性质1在二叉树的第k层上,最多有2k-1(k≥1)个结点。
性质2深度为m的二叉树最多有2m-1个结点。
性质3在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一种。
二叉树的遍历可以分为三种:前序遍历(中前后)、中序遍历(前中后)、后序遍历(前后中)。
对于长度为n的有序线性表,在最坏状况下,二分查找只需要比较log2n次,而次序查找需要比较n次。
在最坏状况下,冒泡排序需要比较次数为n(n-1)/2。
在最坏状况下,简朴插入排序需要n(n-1)/2次比较。
在最坏状况下,堆排序需要比较的次数为O(nlog2n)。
著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。
构造化程序设计措施的重要原则可以概括为自顶向下,逐渐求精,模块化,限制使用goto语句。
构造化程序设计的三种基本构造分别是:次序构造、选择构造和循环构造。
对象的基本特性有:a.标识惟一性;b.分类性;c.多态性;d.封装性;e.模块独立性好。
软件工程的关键思想是把软件产品看做是一种工程产品来处理。
软件的三个要素:程序、数据和文档。
软件工程的三个要素:措施、工具和过程。
软件生命周期就是软件产品从提出、实现、使用维护到停止使用退伍的全过程。
三个阶段:软件生命周期包括软件定义、软件开发及软件维护三个阶段。
软降工程管理包括软件管理学、软件工程经济学、软件心理学。
软件开发阶段(设计、编码、测试)
软件设计分两步完毕:概要设计和详细设计
需求分析措施有:①构造化分析措施②面向对象的分析措施
从需求分析建立的模型的特性来分,需求分析措施又分为静态分析措施和动态分析措施。
构造化分析的常用工具有数据流图(DFD)、数据字典(DD)、鉴定树和鉴定表。其中最重要的工具是数据流图。
数据流图中的重要图形元素与阐明如下:○加工(转换)。数据流。存储文献(数据源)。源,潭。表达系统和环境的接口,属系统之外的实体。
软件需求规格阐明书(SRS)是需求分析阶段的最终成果,是软件开发中的重要文档之一。
内聚性:是一种模块内部各个元素间彼此结合的紧密程度的度量;耦合性:是模块间互相连接的紧密程度的度量。一般较优秀的软件设计,应尽量做到高内聚,低耦合,有助于提高模块的独立性。
经典的数据流类型有两种:变换型和事务型。
过程设计工具有:
图形工具:程序流程图,N-S,PAD,HIPO。
表格工具:鉴定表。
语言工具:PDL(伪码)。
软件测试是为了发现错误而执行程序的过程
软件测试从与否要执行被测试软件的角度可以分为静态测试和动态测试。
软件测试按照功能划分可分为白盒测试和黑盒测试措施。
静态测试包括代码检查、静态构造分析、代码质量度量等
动态测试是通过计算机的测试,发现错误而执行程序的过程。
白盒测试措施也称为构造测试或逻辑驱动测试,措施有逻辑覆盖测试和基本途径测试等
黑盒测试也称为功能测试或数据驱动测试,措施有等价类划分法、边界值分析法、错误推测法、因果图等
程序调试的任务是诊断和改正程序中的错误
数据库管理系统是数据库系统的关键。
数据库系统(DBS)由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一(硬件平台)和系统平台之二(软件平台)构成。
数据管剪发展至今经历了三个阶段:人工管理阶段、文献系统阶段和数据库系统阶段。
数据库系统的基本特点
(1)数据的集成性。
(2