1-算法与数据结构基础.ppt

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1-算法与数据结构基础

大学计算机基础 第1章 算法与数据结构基础 算法的基本概念与评价 数据结构的基本概念 线性表及其存储结构 栈及其存储结构 队列及其存储结构 树和二叉树 查找 排序 §1.1.1 算法基本概念 算法的定义 算法(algorithm)是指对特定问题求解步骤准确而完整的描述,它是指令序列的有限集合,其中每一条指令表示一个或多个操作。 用计算机解决具体问题的时候,需要以下几个步骤: 区分算法和程序。 例: 任意输入一个数,若大于0,输出‘YES’,否则输出‘NO’。 自然语言表述: 步骤1:任意输入一个数x 步骤2:如果x大于0,输出‘YES’,转到步骤4 步骤3:输出‘NO’ 步骤4:结束 伪代码描述: 输入一个数x; if (x0) 输出‘YES’; else 输出‘NO’; §1.1.2 算法的效率与存储量评价 对于算法不能只考虑能否在有穷步终止,还要考虑如何在用户可接受的有穷范围内实现,即对算法的效率进行分析。 对一个算法做出全面的分析可分两个阶段进行,即事前估算和事后统计,通常采用事前估算的方法,评测出来的结果就是所谓的“算法复杂度”。 算法复杂度可以分为时间复杂度和空间复杂度。 1. 算法的时间复杂度 抛开与计算机软、硬件有关的因素,可以认为一个特定算法“运行工作量”的大小只依赖于问题的规模,换句话说,是问题的规模函数。算法的时间复杂度就是衡量执行这些计算工作量所花费的时间,即 T(n) = O(f (n)) 算法的时间复杂度还跟问题的输入数据有关,所以算法的时间复杂度可以用两种形式表达: 平均时间复杂度 最坏情况时间复杂度 平均时间复杂度 平均时间复杂度能够计算出所有输入对应的算法时间复杂度的平均值。需要综合考虑每种类型的输入对应的时间复杂度以及出现这种输入的数学期望。 若用t(x)表示输入为x时的算法时间复杂度,用E(x)表示出现输入x的数学期望,则算法平均时间复杂度A(n)可以表示为: 最坏情况时间复杂度 最坏情况时间复杂度是指在所有输入对应的算法时间复杂度中运算次数最多的时间耗费。如果W(n)表示算法最坏情况时间复杂度,则 W(n) = max{t(x)} 2. 算法的空间复杂度 类似于算法的时间复杂度,可以用算法的空间复杂度作为算法所需存储空间的度量,记作 S(n) = O(f (n)) S(n)除了跟存储程序的指令、常数、变量和输入数据的空间大小有关外,还跟存储一些为实现计算所需信息的辅助空间的大小有关。若额外空间相对于输入数据量来说是常数,则称此算法是原地工作。若所占空间量依赖于特定的输入,则除特别指明外,均按最坏情况分析。 §1.2.1 数据结构的基本概念 数据(Data):是对信息的一种符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素(Data Element):是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。 数据对象(Data Object):是性质相同的数据元素的集合。是数据的一个子集。 数据结构(Data Structure):是相互之间具有一种或多种关联的数据元素的集合。 §1.2.2 线性表及其存储结构 线性表的基本概念 线性表的顺序存储结构 线性表的链式存储结构 对于顺序表,可以用公式计算出任一元素的存储位置。 如果第一个数据元素存放位置为LOC(a i),每个元素需占用 个存储单元,则线性表中第i+1个数据元素的存储位置和第i个数据元素的存储位置之间满足下列关系: LOC(a i+1)=LOC(a i)+ 线性表的第i个数据元素ai的存储位置为: LOC(ai)=LOC(a1)+(i-1)* 插入运算 删除运算 3)循环链表 循环链表是一种首尾相接形似环状的链表。 4)双向链表 双向链表的每个结点是由3个域组成的,比单链表增加了一个指向前件结点的指针域。 §1.2.3 栈及其存储结构 栈的基本概念 栈的顺序存储结构 栈的链式存储结构 栈中没有任何元素称为空栈。 对于非空栈,处于栈顶的元素称为栈顶元素,处于栈底的元素称为栈底元素。 栈是“先进后出”(first in last out, FILO)或“后进先出”(last in first out, LIF

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档