数据结构入门----初识数据结构

1.为啥要研究数据结构

 	 	 简单来说,数据结构就是指数据间的相互关系,而咱们计算机 就要要处理数据的,所以 你得先弄清楚数据
之间得关系吧。弄清楚数据之间得关系后,就得 考虑第二个,怎么在计算机中存放这些数据,最后 
才能考虑对这些数据 做运算吧。
	 	咱们研究数据 结构这块,实际中 遇到 数据之后,一般都是 先分析 这些数据得关系,然后抽象出 一个适当的模型,
再选择一个适合此模型的算法,最后才是编码、测试。
	   如果你不懂数据结构,项目中需要对数据做存储,运算,你选择的依据是什么呢?

2.数据结构基础概念和术语

 数据(Data) 就是能被计算机识别、存储和加工的对象,是所有能输入到计算机并被计算机程序处理的符号的总称。
 数据元素(Data Element) 数据的基本单位啦。比如个人信息 就是一个数据元素。
 数据项(Data Item) 数据项是数据不可分割的最小单位。比如你 个人信息中的 身高,体重,姓名。 
    一个数据元素可由若干个数据项组成。
 数据对象(Data  Object) 是具有相同性质的数据元素的集合。
 数据的逻辑结构(Data Logical Structure) 是指元素和 元素之间的逻辑关系。感觉这才是 重点要理解滴,数据哪能
 		是独立存在嘛,找到相同点,才能归纳 处理嘛,而 数据元素之间的 特定关系成为数据的逻辑结构,简称数据结构。
 通常有4类基本的数据结构:
 1)  集合结构     里面的数据 都是 一个集合。
 2)  线性结构,  结构中的数据元素存在者一对一的关系。
 3)  树型结构      存在一对多的关系。
 4)  图型结构      存在多对多的关系。
 
 什么前驱节点,后继节点,终端节点,开始节点,内部节点。反正都是 节点。通过位置来命名咯,就不多废话了。

3.数据的存储结构

    数据的存储结构 研究的 是 数据结构在计算机中的实现方法,包括 数据结构中元素的表示及元素间的关系。
那么数据结构的存储 主要有以下4类:
    1)顺序存储,通常存储具有线性结构的数据。将逻辑上相邻的结点 存储在连续存储区域的存储单元中,
      使得逻辑相邻的节点一定是物理位置相邻。 比如数据。
    2)链式存储。通过给 每个结点附加一个指针域,一个结点的指针所指示的是该结点的后继结点的存储地址。
       可能存在多个后继,那么就需要多个指针咯。该方式 不需要 物理 位置相邻。通过指针来 体现数据的逻辑结构。
    3)索引存储, 通过建立索引表 和结点表,结点表中放数据,顺序随意,存放的位置 用 顺序存储在 索引表中。
	4)散列存储   通过对结点的值 做计算,来确定它的存储地址。  计算的函数 叫散列函数,函数值 就是 存储地址。
	     该方法 有个特别的优点是,查找速度快,只需要通过给个待查结点的相应数值,即可算出 该结点的存储地址。
	     该方法 只能存储数据,方便快速查找,而不能保存下数据之间的关系。这种存储方法 的关键在于 选择好 散列函数 
	        和处理 通过散列函数计算相同的冲突的处理方法。比如HASH 就是 。
	  数据的存储结点 和 逻辑结构 可以不相同,采用 顺序存储的就是  顺序表,而采用链式 存储的就是 链表。

4. 数据的运算

   一般  也就是   查找(检索)、插入、删除、更新、排序。
   
   一般数据 存储后 主要都是 运算吧,结合运算  考虑 才能选择好的存储方式。

5.设计一个好的算法要考虑些啥呢

   正确性、 可读性(思路清晰,层次清晰) 、健壮性、高效性 。

6.如何评价一个算法的优劣

   所有条件都相同得情况下,主要考虑算法得 时间 复杂度(渐进时间复杂度) 和 空间复杂度。
      1)时间复杂度 肯定是 检索  需要得结点 需要得时间咯,最好得是O(1) 一次找到,最坏 就是全部检索 O(n)。
        平均 就是 所有可能的值的加权计算出的平均值。一般 主要 考虑最坏 和 平均吧。
     2)空间复杂度就是 程序 开始到结束所需要的存储空间。
 
      对于一个算法 ,时间复杂度 和 空间复杂度是 相互影响的,通过 更多的占用空间,可以提高 查找效率,通过 压缩 占用空间,
        可能 又会导致 运行时间变长。所以 这个需要 综合考虑 各个方面 的因素,才能设计出 比较好的算法。     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值