数据结构与算法--基础入门概念

一: 数据结构

1:数据的层次划分

1:数据类型

一个类(相当于Java中的class)

2:数据元素

数据元素属于一种数据类型

3:数据对象

数据类型的实例对象

4:数据项

数据类型的属性,数据类型的实例对象的属性,也是一种数据元素

5:借图辅助理解

Alt
Alt

2:基于数据的数据结构

1: 物理层的存储结构

  1. 对于计算机,只能识别,存储,计算二进制的"数据";应用层数据数据和程序指令,对其来说没有区别;
  2. 物理层面来说,大致上有 顺序存储链式存储 两种;与之对应的是"数组","链表"概念;当然,数组需要连续的空间,但是访问性能高,空间利用率低;链表可以使用零碎的内存空间,空间利用率高,访问性能总体不如数组;

2:应用层的逻辑关系结构

数据结构的应用层的逻辑关系结构,从应用层来说 ,基本都是基于"数组"和"链表"两种基本类型数据结构而衍生的;但是存在一种逻辑上的"集合结构"较为特殊,可参考后续详解;
如:

线性结构

可以当成"数组"理解

树形结构

可以当成"链表"理解

图形结构

可以当成复杂的"链表"理解

集合结构(相对特殊)

集合结构可以理解成数据元素中的***数据子元素***之间没有显示的逻辑关系,一般相互访问时,需要通过父级层面去访问;

如何评价一个数据结构的优劣?

数据结构的优劣的评价必须配合算法一起应用,才能说其优与劣;

二:算法

算法是依赖数据结构的,以及其实际中的特性,才能最大程度利用各种资源,达到最好的效果;

算法的两大指标

实际情况是,根据具体的场景,需要组合使用两大指标,而采取某种策略;是时间换空间还是空间换时间等;

时间复杂度,随着数据量的增加,所耗费的时间;

  • 线型(不好)
  • 指数型(最差)
  • 对数型(较好)

空间复杂度,随着数据量的增加,所消耗的空间;

  • 线型(不好)
  • 指数型(最差)
  • 对数型(较好)

三:常见的基础的算法与数据结构

复杂的算法和数据结构,通常都是由基本的数据结构和算法组成;

排序(算法)

冒泡,快排,希尔排序,堆排等;

数组(数据结构)

链表(数据结构)

单链表,双向链表

树与二叉树(数据结构)

树的默认规则: 父级"值"大于子级"值’,右节点"值"大于左节点"值";
AVL树,红黑树等,都是在 的基础上对其结构做进一步的限制;在插入/删除查询 性能之间做不同程度的平衡;

队列(数据结构)

先进后出

栈(数据结构)

先进先出

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值