美文网首页算法
0.数据结构基础

0.数据结构基础

作者: 大旺旺的弟弟小旺旺 | 来源:发表于2021-06-28 07:36 被阅读0次

数据的结构包括:线性结构和非线性结构。
线性结构:

  • 特点:元素之间是一对一的线性关系,存储方式有顺序存储和链式存储,也就是顺序表或者是链式表。线性结构常见的有:数组 队列 链表 栈 。
    非线性结构
  • 非线性包括:二维数组、多维数组、广义表、树结构、图结构。

存储方式:链表和数组,

  • 数组:可以按照下标进行读取 ,读取效率高,使用一段连续的内存地址。
  • 链表:不使用连续的内存地址,不能按照下标读取,但是插入效率高,找到位置,直接插入,不需要进行数据的移动。

这部分,会整理之前刷过的题和笔记,进来补充到完整吧,代码我传git,尽量写清晰 ,怒需要看代码就知道怎样写代码,重要代码也会贴出来。


数据结构

研究非数值计算的程序设计问题的操作对象(一定关系组织的集合),

研究组织数据方式的学科,通过它可以编出更加有效率,并且漂亮的的代码。

数据结构的分类

逻辑结构/物理结构(存储)

逻辑结构:

  • 集合结构
  • 线性结构
  • 树形结构
  • 图形结构

物理结构:

  • 链式结构
  • 顺序结构

算法

一定的条件,对数据进行计算,得到需要的结果。

算法初体验

最好的算法:占用的内存小,计算速度快。

算法分析

时间分析:时间复杂度
空间分析;空间复杂度

分析方法:

  • 事后分析法:代码写好之后,通过打印时间差来计算时间。
  • 事前分析法:算法的策略和方案,编译产生的代码质量。

事前分析受那些因素影响:

  • 采用的策略和方案
  • 编译产生的代码质量(不可控制)
  • 输入规模
  • 机器执行的指令速度(不可控制)

所以开始之前需要知道问题的规模和实施方案。

for(int i=0;i<10;i++){
    //for 循环执行的次数是11次,for循环里面的是10次,一般忽略了for循环的次数,只需要考虑里面代码的次数就可以了。
}
  • 为什么不需要for语句的次数?

为了计算更有条理,更加方便,所以需要忽略掉他们。并且我们真正关心的只有for里面的语句,一般只关心核心代码。

总结:

算法分析最重要的是把核心操作次数和输入规模关联起来。

相关文章

  • 0.数据结构基础

    数据的结构包括:线性结构和非线性结构。线性结构: 特点:元素之间是一对一的线性关系,存储方式有顺序存储和链式存储,...

  • 美团二面

    电话面试 基础知识偏多(略) 现场面试 一面 0. 针对项目谈轮子的理解:redis redis的数据结构,使用场...

  • 【框架caffe】2:blob.hpp/blob.cpp——ca

    0. Blob简介 Blob:是基础的数据结构,是用来保存学习到的参数以及网络传输过程中产生数据的类。是Caffe...

  • 0.网络基础

    干货都在图片里,请放大仔细阅读。 首先用户进程发个程序给服务器的时候,这个网络数据包会在TCP这层,加上TCP头和...

  • Redis深度历险笔记

    Redis深度历险笔记 基础与应用 Redis基础数据结构 5种基础数据结构:string、list、hash(字...

  • 大场景渲染加速算法

    0. 实时渲染四大目标 1. 空间数据结构 | Spatial Data Structures 空间数据结构(Sp...

  • Redis 笔记

    Redis 基础数据结构 Redis 有 5 种基础数据结构,分别为:string、list、set 、hash ...

  • 数据结构 & 算法 in Swift (一):Swift

    数据结构 & 算法 in Swift (一):Swift基础和数据结构 数据结构 & 算法 in Swift (一...

  • runtime相关数据结构

    Runtime相关的基础数据结构 相关的基础数据结构有: objc_object objc_class isa指针...

  • 2020年最新整理的java学习路线

    阶段一:数据结构 一、基础 1、基本的数据结构 [](1)基础概念 [](2)数组 [](3)链表 [](4)栈:...

网友评论

    本文标题:0.数据结构基础

    本文链接:https://www.haomeiwen.com/subject/ghxfultx.html