首页 > 编程语言 >数据结构与算法

数据结构与算法

时间:2022-08-24 18:05:18浏览次数:69  
标签:顺序 线性表 元素 插入 算法 查找 数据结构

数据结构与算法(第五次课)

顺序表的查找算法分析

  • 对含有n个记录的表,查找成功的时候:
  • ASL = image.png
  • 顺序查找的平均查找长度:
  • image.png
  • 假设每个记录的查找概率相等:
  • image.png

顺序表的插入算法分析

  • 算法的思想:
    • 1.判断插入位置 i 是否合法
    • 2.判断顺序表的存储空间是否已经满,若是满了返回error
    • 将第n至第i位的元素依次向后面移动一位,空出第i个位置
    • 将要插入的新元素e放入第i个位置
    • 表长加1,插入成功,返回ok
  • 算法的时间主要耗在移动元素的操作上
    • 平均的移动次数是:B354927264D70B3321BD760AF7113A98.jpg

顺序表的删除算法分析

  • 算法思想
    • 判断删除位置i是否合法(合法值为,<=i<=n)
    • 将欲删除的元素保留在e中
    • 将第i+1至第n位的元素依次向前移动一个位置
    • 表长减1,删除成功返回ok
  • 算法时间主要耗费在移动元素的操作上
    *平均移动次数056CEE5F2B0D931AA6789F2798E657FE.jpg

顺序表小结

顺序(线性表的顺序存储结构)的特点
  1. 利用数据元素的存储位置表示线性表中相邻数据元素之间的前后关系,即线性表的逻辑结构与存储结构一致
  2. 在访问线性表时候,可以快速地计算任何一个数据元素地存储地址,因此可以初略地认为,访问每一个元素所花地时间相等
  3. 这种存储元素地方法称为随机存取法
顺序表地基本操作地实现
  • 时间复杂度: 查找、插入、删除算法地平均时间复杂度为O(n)
  • 空间复杂度:顺序表操作算法空间复杂度为S(n) = O(1) ,没有占用辅助空间
顺序表优缺点
  • 优点:
    • 存储密度大(结点本身所占存储量/结点结构所占存储量)
    • 可以随机存取表中任一元素
  • 缺点:
    • 在插入、删除某一元素时,需要移动大量元素
    • 浪费存储空间
    • 属于静态存储形式、数据元素地个数不能自由扩充
 

标签:顺序,线性表,元素,插入,算法,查找,数据结构
From: https://www.cnblogs.com/jerry-autumn/p/16621079.html

相关文章

  • #前端算法救赎系列#LeetCode01.两数之和
    1.两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。示例1:输入:nums=[2,7,11,1......
  • 考研数据结构与算法(一)绪论
    目录一、数据结构概念1.1数据的逻辑结构1.2数据的存储结构二、基本术语2.1数据2.2数据元素2.3数据对象2.4数据类型三、抽象数据类型ADT四、算法和算法分析4.1算法4......
  • Redis下载安装、Redis数据结构
    Redis下载安装2.下载安装1,官网:https://redis.id2.中文网:http://www.redis.net.cn/3.解压直接可以使用∶*redis.windows.conf:配置文件*redis-cli.exe:redis的客......
  • 视觉算法-软件-芯片-电驱技术
    视觉算法-软件-芯片-电驱技术参考文献链接https://mp.weixin.qq.com/s/vabcv7fKNkVI3xNA7rdTiwhttps://mp.weixin.qq.com/s/xIEFeavU4Pi7b0vwBaW6GAhttps://mp.weixin.......
  • 算法秋招之【最小生成树】
    cvte笔试遇到了该题型,特此学习。首先,最小生成树是与图、图论相关的概念花时间看b站的视频:[算法训练营-最小生成树]:最小生成树:简单来说最小生成树就是用最少的代价使......
  • KMP算法——深入骨髓的领悟
    前缀函数与KMP算法真前缀:S中不全等于S的前缀前缀函数定义\(s[0\dotsi]\)的真前缀与真后缀相等的最大长度为\(\pi(i)\)。规定\(\pi(0)=0\)。计算前缀函数1.朴......
  • 面试手撕并发算法题
    面试手撕并发算法题固定打印顺序使用wait-notify实现以下功能:先打印b,再打印a思路一线程t1和t2同时运行,t1中打印a,t2中打印b,但t1打印得有个前提,就是t1要在t2......
  • 2022河南萌新联赛第(七)场:南阳理工学院ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛牛客
    2022河南萌新联赛第(七)场:南阳理工学院ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛牛客竞赛OJ(nowcoder.com)1.B-龍_2022河南萌新联赛第(七)场:南阳理工学院(nowcoder.com)......
  • 算法:两个链表的第一个公共节点
    问题输入两个链表,找出它们的第一个公共节点。解决//1、暴力解法classSolution{ListNodegetIntersectionNode(ListNodeheadA,ListNodeheadB){w......
  • 「数据结构与算法」链表 —— 看这一篇就够了(超详细)
     一、链表简介链表是一种物理存储单元上非连续、非顺序的存储结构,数据结构的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点......