数据结构基础知识

一.第一章
什么是数据结构:
常用到以下几个名词:
1.数据:
数据就是计算机加工处理的“原料”,是信息的载体。
数据分为两类:一类是数值数据,另一类是非数值数据。
2.数据元素:
数据元素是能够独立,完整地描述问题世界中的实体最小数据单位,它是数据这个集合中的一个一个的元素。数据元素又称为数据节点,或简称节点。数据项是数据元素不可分割的最小单位。
3.数据对象
一个数据对象被定义为具有相同性质的数据元素的集合。它是数据这一个集合的一个子集。
4.结构
数据元素之间存在某种联系,这种联系称为结构。数据结构是具有结构的数据元素的集合。数据结构是一个二元组
Data-Structure=(D,R)//D是数据元素的有限集合,R是D上关系的集合。
关系分为:逻辑结构和存储结构
顺序存储:在计算机存储器中用一片连续的存储单元(存储单元之间不能间隔)一次存放元素的信息,数据元素之间的逻辑关系通过数据元素的逻辑地址来直接反映,在这种存储结构中,逻辑上相邻的数据元素在物理地址上也必然相邻。顺序存储结构的优点是简单,易理解,并且实际占用最少的存储空间,缺点是需要占用一片地址连续的整块空间,并且存储分配要事先进行,而且对于一些操作的时间效率较低。
链式存储结构是指在计算机存储器中用一片地址任意的存储单元依次存放数据元素的信息,一般称每个数据元素占用的若干存储单元的组合为一个链接点。每个链接点中不仅存放数据元素的数据信息,还要存放一个指出这个元素在逻辑关系中的直接后继元素所在链接点的地址,该地址被称为指针。链式存储结构也称链表结构,简称链表。优点:不会造成空间资源的浪费,操作时间效率高。
索引结构是利用数据元素的索引关系来确定数据元素存储位置的一种存储结构,它由数据元素本身的数据信息以及索引表两部分组成。散列结构是由事先构造的散列函数关系及处理冲突的方法来确定数据元素在散列表中的存储位置。
算法:
算法及其性质:
算法+数据结构=程序
什么是算法?
算法就是用来解决某个特定课题的指令集合。非为数值算法和非数值算法。理论上来说,任何递归算法都可以通过循环的方法,或者利用堆栈或队列等机制转化成非递归。
作为一个完整的算法应该满足5个标准,称为算法的基本特性:
1.输入(在某些特殊情况下,一个算法可以没有输入)
2.输出(至少有一个量作为算法的输出)
3.有穷性 (算法必须在有限的步骤内结束)
4.确定性(每一条指令都必须有明确的含义,不能让他产生二义性或者多义性)
5.有效性(算法的每一条指令必须具有可执行性)
基本算法:
1.枚举法:
枚举就是从集合中一一列举各个元素。如果不知道一个命题是否为真,利用一一列举每个元素的方法,如果都为真,找不到反例,此命题为真。(枚举证明)
2.归纳法:
归纳法常用的有数学归纳法,递推和递归。
3.回溯法
回溯法是设计递归过程的重要手段。
4.模拟法
本质是建立数学模型,根据数学模型展开算法设计,最终解决问题。
算法分析:
算法分析的目的用于改进算法。应该从下面几个方面考虑对算法进行分析:
1.正确性,对于不合理的输入能够给出警告提示信息(通常称为算法的健壮性)
2.依据该算法编写的程序在计算机中运行时间的多少的度量,通常所说的时间复杂度
3.依据该算法编写的程序占用计算机存储空间多少度量,即空间复杂度
4.其他方面,如算法的可读性,简洁性。可移植性以及易测试性等
时间复杂度:
程序在计算机中运行时间的多少主要由以下内容:
1.问题的规模
2.源程序的编译功能的强弱以及经过编译后产生的机器代码质量的优劣
3.机器执行一条目标执行时间的长度
4.程序中语句执行的次数
把语句执行次数的多少作为算法的时间复杂程度的度量分析方法称为频度统计法。
语句频度是指某语句被重复执行的次数。
算法时间复杂度通常具有O(1),O(n),O(n2),O(n3),O(log2n),O(nlog2n),O(2n)和O(2!)等,其中O(1)表示算法时间复杂度为常量它不随问题规模n的大小而改变具有O(n)的算法被称为线性算法。时间复杂度为O(log2n)的算法运行时间与n的对数成正比。
O(log2n)<,O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)<O(2!)
空间复杂度:
一个算法在计算机存储器上占用的存储空间应该包括存储办法本身所占用的空间,算法输入/输出数据所占用的空间以及算法运行过程中临时占用的空间3个部分。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值