数据结构之期末考试复习绪论部分

目录

一、绪论部分

概念:

数据元素:

数据结构:

算法:


一、绪论部分

概念

数据元素

数据:计算机中所有可识别、可处理的符号集合,是信息的载体(如数字、字符、图像、声音等)。

数据元素:数据处理的基本单位。

数据项:数据的最小单位。

数据对象:性质相同的数据元素的集合。

数据元素可以由类型互不相同的数据项构成。

数据结构

数据结构研究的数据间的逻辑关系(集合、线性、树、图)以及物理存储方式(顺序存储、链式存储、索引存储)。

数据结构(相互之间存在一种或多种特定关系的数据元素的集合,也是数据元素的组织形式)概念包括数据之间的逻辑结构、数据在计算机中的存储结构和数据的运算操作三个方面。

数据结构可以从逻辑上分成非线性结构和线性结构两大类。

与计算机无关的数据结构是逻辑结构;和计算机有关的是存储结构(物理结构)。

数据类型是一组的值的集合,以及定义再这个值的集合之上的一组操作的总称。

逻辑关系:

        集合结构:数据元素之间无关系。

        线性结构:数据元素之间存在一对一的关系。

        树状结构(层次结构、树形结构):数据元素之间存在一对多的关系。

        图状结构:数据元素之间存在多对多的关系。

物理存储方式:

        顺序存储结构:数据元素存放在地址连续的存储单元中,逻辑上相邻的元素物理位置也相邻。

        链式存储结构:数据元素存储在非连续的地址空间,通过指针(地址引用)连接逻辑相邻的元素。

        索引存储结构:建立独立的索引表,存储数据元素的地址指针。数据区与索引区分开存储。

        散列存储结构:通过哈希函数直接计算数据元素的存储地址。

算法

算法计算量的大小称为计算的复杂性。

算法的时间复杂度用算法中所有基本运算的次数来度量。

算法的时间复杂度与问题的规模有关。

算法中问题规模:数据的个数。

算法的最坏情况是衡量算法好坏的重要考虑因素。

算法分析的目的:改进算法,减少时间复杂性和空间复杂性。

算法独立于具体的程序设计语言,与具体的计算机无关。

算法:算法是解决特定问题的有穷步骤序列,是逻辑层面的解决方案。它描述“如何通过有限步骤完成任务”,与编程语言无关。

程序:程序是算法的具体实现,是用编程语言(如Python、C++)编写的可执行指令集合,能在计算机上运行。

算法的优劣:(特别是效率)主要由时间复杂度和空间复杂度定义,这些是算法固有的渐近属性,与计算机硬件无关。

时间复杂度推导大O阶:

        1.用常数1取代运行时间中的所有加法常数

        2.在修改后的运行次数函数中,只保留最高阶项

        3.如果最高阶项存在且系数不是1,则去除与这个项相乘的常数

算法的设计要求:

        1.正确性:要求算法能够正确地执行预先规定的功能,并达到所期望的性能要求(语法没有错误、对于合法和非法数据都能够处理)。
        2.可读性:为了便于理解、测试和修改算法,算法应该具有良好的可读性(方便阅读、便于执行)。
        3.健壮性:当输人数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果。
        4.高效性:设计算法应该尽量满足时间效率高和存储量低的需求。

算法需要满足的基本五个性质:

        1.有穷性:算法必须能在执行有限个步骤之后终止;
        2.确切性:算法的每一步骤必须有确切的定义;
        3.输人项:一个算法有0个或多个输人,以刻画运算对象的初始情况,所谓0个
输人是指算法本身定义了初始条件;
        4.输出项:一个算法有1个或多个输出,以反映对输人数据加工后的结果,没有输出的算法是毫无意义的;
        5.可行性:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。

用渐进表示法分析算法复杂度的增长趋势。

时间复杂度(最坏、最好、平均)求法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值