百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

基础数据结构-绪论(一)(数据结构基础ppt)

toyiye 2024-09-06 00:04 4 浏览 0 评论

数据结构-绪论(一)

  1. 存储
  2. 数据结构
  3. 算法
  4. 概述

数据结构-线性表(二)

  1. 数组
    1. 删除
    2. 插入
    3. 交换
    4. 移动
  2. 链表
    1. 单/双,循环,静态链表
    2. 单链表逆序
    3. 单链表的,从尾部输出(单次遍历)
    4. 求单链表的中间节点(不知道链表的长度)
    5. 单链表求得倒数第K个元素
    6. 单链表插入排序
    7. 两个顺序单链表的,合并(顺序)
    8. 两个单链表的,公共点
    9. 判读单链表是否带环
    10. 求环的长度
    11. 得到环的切入节点
    12. 求带环链表的长度
    13. 求出环中的任意,节点的最长距离节点
    14. 求带环链表的相交点
    1. 递归
    2. 共享栈
    3. 斐波那契数列
    4. 用两个栈,实现一个队列
    5. 求最新栈元素,要求时间复杂度是O(1)
    6. 一个数组实现两个栈,本质上就是顺序存储的共享栈
    7. 如何实现逆序栈
    8. 如何实现栈的排序
    9. 内存栈的构成,栈区和堆区的说明
  3. 队列
    1. 循环队列
    2. 优先队列
    3. 两个队列实现,栈
    4. 猫狗队列

数据结构-串(三)

  1. KMP模式匹配算法
  2. BM算法
  3. Sunday算法
  4. 最长公共子串

数据结构-树(四)

  1. 搜索二叉树
  2. 红黑树
  3. B+树
  4. B-树
  5. 默克尔树
  6. 赫夫曼树

数据结构-图(五)

  1. 广度优先遍历
  2. 深度优先遍历
  3. 最小生成树-Prim(普利姆算法)
  4. 最小生成树-Kruskal(克鲁斯卡尔)
  5. 最短路径-Dijkstra(迪杰特斯拉)
  6. 最短路径-Floyd(弗洛伊德算法)
  7. A*路径搜索算法
  8. 关键路径算法

基础数据结构,总共分为5篇文章,依次来介绍说明,今天介绍第一篇绪论

数据结构-绪论

  • 存储
  • 数据结构
  • 算法
  • 程序 = 数据结构 + 算法;

    一切程序的来源都是数据之间的关系存储。

    1、数据是什么呢?

    数据,通俗的讲就是整型123,字符串ABC等数值类型,以及声音,图片,视频等等,最终以二级制数据存储到磁盘中;数据是计算机操作的对象,所有可输入的处理符号,且可被计算机识别的对象都成为数据

    数据元素:是一个数据的集合,也成为"记录"

    数据项:一个数据元素由若干个数据项组成

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

    数据关系:相互之间存在的一种或是多种关系的数据元素集合


    2、数据之间的关系有哪些?




    3、算法及与数据结构之间的关系?

    算法是解决问题求解步骤的描述,一条条的序列指令的步骤集合;

    就像,如何炒一盘菜?

    那么算法就可以理解为“菜谱”,那么数据结构就可以理解为“食材”,有了食材,有了菜谱,才能做出一份“程序”


    接下来分别描述一下,数据结构和算法

    数据结构

    数据结构,也就是数据之间的关系,分为结构:逻辑结构和物理结构(也就是如何存储的)

    • 逻辑结构
    1. 集合结构 == 无关系
      1. 定义:数据元素之间没有关系,只是存储在一个集合
      2. 特点:数据元素是平等的
    2. 线性结构 == 一对一的关系
      1. 定义:数据元素之间是一对一线性关系
      2. 特点:每个数据元素都有前驱或是后驱
    3. 树形结构 == 一对多的关系
      1. 定义:数据元素之间是一对多的层次关系
      2. 特点:数据元素都有一个前驱或多个后驱
    4. 图形结构 == 多对多的关系
      1. 定义:数据元素之间是多对多的关系
      2. 特点:数据元素之间相互之间
    • 存储结构

    又叫做物理结构,是指数据元素的逻辑结构在计算机中的存储形式。

    1. 顺序存储结构
      1. 定义:是把数据元素存放在连续的存储单元里
      2. 例如:创建一个长度为10的整型数组,计算机就在内存中,按照一个整型(4个Btye)所占位置的大小乘以9,开辟一段连续的空间,然后第一个数据元素放在第一个位置,第二个数据放在第二个位置,依次存放
      3. 特点:开辟的空间是连续的,索引查询比较快,会浪费多余的空间,需要预制数据元素的大小,空间扩展比较麻烦,插入/删除数据元素,则需要大量元素跟着移动
    2. 链式存储结构
      1. 定义:是把数据元素发在任意的存储单元里,每个数据元素中含有其对应逻辑关系的存储地址,也就是链式存储结构在分配空间的时候不是连续的,当然了也可以是连续的
      2. 例如:现在医院排队系统,每个人过去先领取一个号,等着叫好,叫到的时候去看病,在等待的时候,可以爱去哪儿去哪儿;“号”就是一个指针存放数据元素的地址,通过“号”找到关联数据元素的位置
      3. 特点:插入/删除数据元素比较灵活,查询效率较低,数据元素复杂的关系用链式存储可以更好的表示

    算法

    算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条特定指令都表示一个或多个操作

    • 特性
    1. 正确的输入和输出
    2. 有穷性
    3. 确定性
    4. 可行性
    • 设计要求
    1. 正确性
    2. 可读性
    3. 健壮性
    4. 时间复杂度低和空间复杂度低
    • 时间复杂度

    定义:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随着n的变化情况并确定T(n)的数量级,算法的时间复杂度,就是算法的时间量度T(n)=O(f(n))

    常数阶 > 对数阶 > 线性阶 > nLogn阶 > 平方阶 > 立方阶 > 2^n > N! > 指数阶

    • 空间复杂度

    算法空间复杂度是通过计算算法所需的存储空间实现,算法空间复杂度的计算公式:S(n) = O(f(n)),其中,n为问题的规模,f(n)为语句关于n所占用的存储空间的函数


    例如:求证1+2+3+4+...+100?

    基本的算法,遍历1到100个数,进行相加,时间复杂度O(n)

    换成高斯算法,时间复杂度O(1)

    1 + 2 + 3 + ... + 98 + 99 + 100 = a;

    100 + 99 + 98 + ... + 3 + 2 + 1 = a;

    上面两个表达式相加求证:2a =(100 + 1)* 100

    a =(100 + 1)* 100 / 2

    那么求,∑i = 1+2+3+…+n,得出∑i =(n + 1)* n/ 2

    就好像上面说的算法,就像炒菜的菜谱(算法),在一定的食材(数据)中,如何做出一份又快又好吃的饭菜;


    数据结构和算法


    线性表



    相关推荐

    # Python 3 # Python 3字典Dictionary(1)

    Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

    Python第八课:数据类型中的字典及其函数与方法

    Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

    Python中字典详解(python 中字典)

    字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

    Python3.9又更新了:dict内置新功能,正式版十月见面

    机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

    Python3 基本数据类型详解(python三种基本数据类型)

    文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

    一文掌握Python的字典(python字典用法大全)

    字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

    超级完整|Python字典详解(python字典的方法或操作)

    一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

    Python3.9版本新特性:字典合并操作的详细解读

    处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

    python 自学,字典3(一些例子)(python字典有哪些基本操作)

    例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

    Python3.9中的字典合并和更新,几乎影响了所有Python程序员

    全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

    Python3大字典:《Python3自学速查手册.pdf》限时下载中

    最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

    python学习——字典(python字典基本操作)

    字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

    324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

    如何入门学习python...

    Python3.9中的字典合并和更新,了解一下

    全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

    python3基础之字典(python中字典的基本操作)

    字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

    取消回复欢迎 发表评论:

    请填写验证码