目录

  • 一.数据结构概念
  • 二.算法概念
  • 三.线性表

一.数据结构概念

  1. 逻辑结构

    1. 集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系

    2. 线性结构:线性结构中的数据元素之间是一对一的关系

    3. 树型结构:树形结构中的数据元素之间存在一种一对多的层次关系

    4. 图形结构:图形结构的数据元素是多对多的关系

  2. 物理结构(存储结构):数据的逻辑结构在计算机中的存储形式

    1. 顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的

    2. 链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的

二.算法概念

  1. 算法特性

    1. 输入:算法具有零个或多个输入
    2. 输出:算法至少有一个或多个输出
    3. 有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成
    4. 确定性:算法的每一步骤都具有确定的含义,不会出现二义性
    5. 可行性 :算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成
  2. 算法设计的要求
    1. 正确性
    2. 可读性
    3. 健壮性
    4. 时间效率高
    5. 存储量低
  3. 算法效率
    • 判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注主项(最高阶项)的阶数
  4. 算法时间复杂度
    • 时间复杂度
  5. 最坏时间复杂度
    • 通常,除非特别指定,我们提到的运行时间都是最坏情况的运行
      时间
  6. 算法空间复杂度
    • 算法的空间复杂度通过计算算法所需的存储空间实现,算法空间复杂度的计算公式记作∶S(n)= O(f(n)),其中,n为问题的规模,f(n)为语句关于n所占存储空间的函数。

三.线性表

  1. 线性表抽象数据类型的定义

  2. 线性表顺序存储结构
    1. 定义:线性表的顺序存储结构,指的是用一段地址连续的存储单元依次
      存储线性表的数据元素。
    2. 长度
      • 线性表的长度是线性表中数据元素的个数
    3. 线性表顺序存储结构优缺点
      • 优点:

        1. 无需为表示表中元素之间的逻辑关系而增加额外的存储空间
        2. 可以快速地存取表中任意位置地元素O(1)
      • 缺点:
        1. 插入和删除操作需要移动大量元素O(n)
        2. 当线性表长度变化较大时,难以确定存储空间的容量
        3. 造成存储空间中的“碎片”
        4. 代码(待更新)
  3. 线性表链式存储结构
    1. 定义:为了表示每个数据元素 ai与其直接后继数据元素 a1 之间的逻辑关系,对数据元素 ai来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置)。我们把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。指针域中存储的信息称做指针或链。这两部分信息组成数据元素 ai的存储映像,称为结点(Node);n个结点(a;的存储映像)链结成一个链表,即为线性表(a1,a2,…,an)的链式存储结构,因为此链表的每个结点中只包含一个指针域,所以叫做单链表。

    2. 概念

      1. 结点由存放数据元素的数据域和存放后继结点地址的指针域组成
      2. 头指针
        • 链表中第一个结点的存储位置(如果存在头结点,则头指针指向头节点存储位置)
      3. 头结点(一个辅助结点,不算真正的结点)
        • 在单链表的第一个结点前附设一个结点,称为头结点。
        • 头结点的数据域不存储信息
        • 头节点的指针域指向第一个结点的指针
      4. 头节点和头指针关系

  4. 单链表结构与顺序存储结构优缺点

算法笔记(持续更新)相关推荐

  1. 重拾CCNA,学习笔记持续更新ing......(4)

    重拾CCNA,学习笔记持续更新ing......(4) 路由器作用功能的经典解说(笑)(非原创) 假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大 ...

  2. IRS中波束赋形设计源代码之AO算法学习(持续更新,多多交流)

    IRS中波束赋形设计源代码之AO算法学习(持续更新,多多交流) 论文:Weighted Sum-Rate Maximization for Reconfigurable Intelligent Sur ...

  3. Admin.NET管理系统(vue3等前后端分离)学习笔记--持续更新

    我的学习笔记 - 9iAdmin.NET 欢迎学习交流 (一)前端笔记 1.1 关于.env的设置 1.2 关于路由模式问题 1.3 关于 vue.config.ts 1.4 关于 打包(pnpm r ...

  4. JS逆向学习笔记 - 持续更新中

    JS逆向学习笔记 寻找深圳爬虫工作,微信:cjh-18888 文章目录 JS逆向学习笔记 一. JS Hook 1. JS HOOK 原理和作用 原理:替换原来的方法. (好像写了句废话) 作用: 可 ...

  5. CSS(3)学习笔记——持续更新

    本篇皆是本人长期记录并整理出来的笔记,如有记录得不对的地方,欢迎探讨.记录的很少,将不断学习不断补充. 1 选择器 CSS(3)中提供的选择器手册(w3school):http://www.w3sch ...

  6. 最全Linux系统学习笔记--持续更新

    1.shell语法 命令 选项 参数 命令:整条shell命令的主体 选项:会影响会微调整个命令的行为 参数:命令作用的对象 1.自动补全 2.快捷键 ctrl+C:终止前台运行的程序 ctrl+D: ...

  7. 目标跟踪经典算法汇总(持续更新...)

    如题,虽然这个问题是经典目标跟踪算法,但事实上,可能我们并不需要那些曾经辉煌但已被拍在沙滩上的tracker(目标跟踪算法),而是那些即将成为经典的,或者就目前来说最好用.速度和性能都看的过去trac ...

  8. 0.linux笔记.....持续更新...

    0.0. VScode几点基本用法 0.1. 将UbuntuLauncher启动器移动到底部 0.2. 一个窗口中运行多个终端方法 1.Markdown的用法 2.source 用法 3.安装软件 4 ...

  9. MySQL笔记(持续更新)

    文章目录 一.MySQL 1.简介 2.数据库的概念 ​ 3. DOS指令: 4.数据库的基本操作 4.1.查看数据库: 4.2.删除数据库: 4.3.选择数据库: 4.4.创建数据库 4.5.查看数 ...

  10. typescript-----javascript的超集,typescript学习笔记持续更新中......

    Typescript,冲! Typescript 不是一门全新的语言,Typescript是 JavaScript 的超集,它对 JavaScript进行了一些规范和补充.使代码更加严谨. 一个特别好 ...

最新文章

  1. 【工具软件】webstorm如何使用快捷键生成固定代码
  2. cortex m3 gcc项目_广东省住建厅党组书记赵坤到公司陆丰市污水PPP项目实地调研...
  3. 红黑树的原理_红黑树插入算法实现原理分析
  4. 策略模式(stragegy)
  5. 怎么导出插件_不会插画没关系,插件帮你快速搞定
  6. SDOI2016 生成魔咒
  7. android: 调用摄像头拍照
  8. mr图像翻转的原因_MRI图像常见问题及对策
  9. Problem D: 顺序串的基本运算
  10. eclipse 4.3 汉化
  11. MonkeyRunner_API
  12. mysql排序同值排名一致
  13. seafile看不见repo报500错误的解决方法
  14. matlab解方程 中det,matlab中det函数
  15. 惊艳的成长计划表刷屏!武大首位 94 年博士入职华为,年薪达 201 万
  16. 微信如何推送html文件,微信推送怎么附上文件_怎样在微信公众号上传附件图文步骤...
  17. JS this指向练习题
  18. 计算机打字速度在线测试,在线测试打字速度(一分钟打字速度测试)
  19. 基于matlab的排队系统仿真
  20. 瑞红淘宝商城旗舰店开张 正式进军B2C市场

热门文章

  1. C# 转换图片的大小
  2. 解决element UI 表格el-table增加列会震动抖动的问题
  3. c语言程序设计学生管理系统结构图,c语言程序设计学生管理系统.doc
  4. 假如你的入职薪水为10k,每年涨幅入职薪水的5%,50年后你的工资是多少?
  5. Matlab仿真 点电荷电场分布分析
  6. 现在不起眼的小IT公司值得去吗?我分享自己的亲身经历
  7. 走进小程序【一】什么是小程序?
  8. 产业联盟提高企业核心竞争力
  9. Android开发实用小技巧六——根据网址跳转第三方浏览器
  10. VMware Workstation 和 Device/Credential Guard 不兼容