大学计算机基础-算法与数据结构基础.ppt
《大学计算机基础-算法与数据结构基础.ppt》由会员分享,可在线阅读,更多相关《大学计算机基础-算法与数据结构基础.ppt(54页珍藏版)》请在三一办公上搜索。
1、算法与数据结构基础,算法,算法是解题方案的准确而完整的描述。具有可行性,确定性,有穷性,有足够的情报输入与输出。算法要素:数据的运算和操作+控制结构;运算与操作:算术,逻辑,关系,数据传输(赋值,输入,输出等);控制结构:顺序,选择,循环;,算法的常见描述方法:自然语言方式 伪代码方式 程序流程图方式 N/S盒图方式,算法描述-伪代码,介于自然语言和程序语言之间的一种描述方法,与具体编程语言无关。Keep track of current number of resources in use If another resource is available Allocate a dialog
2、box structure If a dialog box structure could be allocated Note that one more resource is in use Initialize the resource Store the resource number at the location provided by the caller Endif Endif Return TRUE if a new resource was created;else return FALSE,算法描述-程序流程图,算法由若干张流程图描述,每张流程图由结点和有向边构成,该图描述
3、了算法中所进行的操作以及这些操作执行的逻辑顺序。流程图的常用结点及控制结构描述如下:,算法描述-N/S盒图方式,算法设计基本方法,列举法归纳法递推法递归法回溯法,列举法,设每只母鸡值3元,每只公鸡值2元,每只小鸡值0.5元。现要用100元钱买100只鸡,设计买鸡方案。,递推法,假定一对刚出生的小兔子,一个月后就能长成大兔子,再过一个月后就开始生小兔子,并且也正好生一对兔子。问在没有兔子死亡的情况下,一对初生的兔子一年后可繁殖成多少对兔子。,算法的复杂度,空间复杂度:占用的存储空间大小时间复杂度:编译时间+运行时间(1)a=b;/O(1)-时间复杂度为常数值(2)for(int i=0;in;i
4、+)a=b;/O(n)-时间复杂度为一阶值(3)for(int i=0;in;i+)for(int j=0;jn;j+)a=b;/O(n2)-时间复杂度为二阶值,数据结构的基本概念,数据:数据是信息的载体,是能够输入到计算机中,并被计算机识别、存储和处理的符号的集合。数据元素:数据处理中具有独立意义的个体。元素可能是数也有可能是记录。数据结构:数据结构是指组成数据的元素之间的结构关系(线性结构,树形结构)。逻辑结构:数据的逻辑结构(如线性结构和非线性,如树形结构)。物理结构:数据的存储结构(线性存贮,链式存贮)。,逻辑结构线性结构(线性表),一个线性表是n个数据元素的有限序列。其存储空间是连续
5、的,各个数据元素在存储空间是按逻辑顺序依次存放的。只有一个跟结点,每个结点只有一个前后件。限定性的线性表结构:栈:后进先出(进入和删除都在一端)队列:先进先出(进入在尾部和删除在头部),线性和链式存贮结构,线性存储结构具有简单、操作方便、占用空间少的优点,但做插入和删除时需要移动大量的元素,并且需要足够大的成块的内存。链式存储结构:每个存储节点由两部分构成,一部分用于存放数据,一部分用于存放指针(记录前一个或后一个节点的地址)。用一个专门的指针(称为头指针)指向第一个数据节点。,1)单向链结构 2)双向链结构 3)多向链结构,非线性结构树与二叉树,数据元素具有层次关系,并以分支关系定义了层次结
6、构。父结点(结点的前驱结点),子结点(结点的后继结点),根结点(无前驱结点的结点),叶子结点(无后继结点的结点)。结点所拥有的子树的棵树被称为度。,二叉树基本性质,二叉树:只有一个跟结点,每个结点度最大为2性质1 二叉树第i层上的结点数目最多为2i-1(i1)。性质2 深度为m的二叉树至多有2m-1个结点(k1)。证明:在具有相同深度的二叉树中,仅当每一层都含有最大结点数时,其树中结点数最多。因此利用性质1可得,深度为k的二叉树的结点数至多为:20+21+2k-1=2k-1 故命题正确。,性质3 在任意-棵二叉树中,若度为零的结点为n0,度为2的结点数为n2,则no=n2+1。,特殊形态二叉树
7、,满二叉树:深度为m且有2m-1个结点的二叉树。即每一层的所有结点数都达到最大值。完全二叉树:除最后一层外,每一层结点数都达到最大值;在最后一层只缺少右边的若干结点。,二叉树的遍历,首先访问根结点为前序,先左再根再右为中序,先左再右再根为后序前序:A B D C E F中序:D B A E C F后序:D B E F C A,查找技术,顺序查找:无序表,采用链式存储结构的有序线性表。折半查找:有序表(需要排序)。最坏情况下顺序查找需要比较m次,折半查找需要log2m次。,1.5 程序设计基础,程序设计的重要性,程序是计算机的一组指令,是程序设计的最终结果。程序经过编译和执行才能最终完成程序的功
8、能。高级程序设计语言的出现使得程序设计不仅是计算机专业人员必备知识,也是各行各业专业技术人员必须掌握的技术。,程序设计方法与风格,程序设计应该简单清晰,为了测试和维护应该遵循“清晰第一,效率第二”的风格。注意以下因素:源程序文档化(符号命名规律,程序注释,视觉组织)数据说明便于理解和维护(次序规范便于查找)语句结构简单直接(一行一句,避免使用零时变量,模块功能应单一,不用无条件转移,不良程序应重新编写)输入输出方便并能进行合理性检查(输入输出数据合法性,合理检查,输入数据应尽可能少,人机会话界面),两种程序设计方法,结构化程序设计程序=数据结构+算法面向对象程序设计程序=对象+消息,1、结构化
9、程序设计,结构化程序设计:Structured Programming基本原则:采用自顶向下,逐步求精的方法:先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标,逐步使得问题具体化。模块化:每一个小问题构成一个模块,模块只有一个入口和出口,一个功能。禁用无条件转移(GOTO),好结构的程序具有结构清晰,容易阅读,容易理解,容易验证,容易维护的特点。可以证明采用三种结构可以表达出各种其它复杂形式的程序结构。三种结构:顺序,选择,循环,2、面向对象的程序设计,面向对象:Object Oriented对象即客观世界中的实体,客观世界中的实体都具有静态的属性和动态的行为。程序设计中的对象:在编程中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机 基础 算法 数据结构
链接地址:https://www.31ppt.com/p-6563653.html