当前位置: 首页 > wzjs >正文

网站建设 长春个人建站

网站建设 长春,个人建站,保定建站公司模板,公司网页动画本节主要介绍顺序表的查找、插入和删除操作。 本文部分ppt、视频截图来自:[青岛大学-王卓老师的个人空间-王卓老师个人主页-哔哩哔哩视频] 1. 顺序表上的查找操作 (1)什么是按值查找 给定一个值,顺序遍历线性表,看…

本节主要介绍顺序表的查找、插入和删除操作。

本文部分ppt、视频截图来自:[青岛大学-王卓老师的个人空间-王卓老师个人主页-哔哩哔哩视频]

1. 顺序表上的查找操作

(1)什么是按值查找

给定一个值,顺序遍历线性表,看该值是否在线性表中,如果存在就返回元素位序,如果不存在,就返回0。

在这里插入图片描述

(2)顺序表的按值查找算法

  • 在线性表L中查找与指定值e相同的数据元素的位置
  • 从表的一端开始,逐个进行记录关键字和给定值的比较。找到,返回该元素的位置序号,未找到,返回0
//for语句实现:
int LocatedElem(SqList L,ElemType e){
//在线性表L中查找值为e的数据元素,返回其序号(是第几个元素)for(i = 0;i < L.length;i++)//查找成功,返回序号if(L.elem[i] == e)  return i+1;return 0; //查找失败,返回0
}//while语句实现
int LocatedElem(SqList L,ElemType e){
//在线性表L中查找值为e的数据元素,返回其序号(是第几个元素)i = 0;while (i < L.length && L.elem[i] != e)  i++;//查找成功,返回序号if(i < L.length)  return i+1;return 0; //查找失败,返回0
}

(3)顺序表的查找算法分析

  • 因为查找算法的基本操作为:记录的关键字同给定值进行比较
    在这里插入图片描述
  • 平均查找长度ASL(Average Search Length):
    为确定记录在表中的位置,需要与给定值进行比较的关键字的个数的期望值叫做算法的平均查找长度。如果e = g,那么平均查找长度为:(1 + 2 + 3 + 4 + 5 + 6 + 7) / 7 = 4
    在这里插入图片描述
    假设每个记录的查找概率相等: Pi = 1 / n
    则: ASLSS = \sum_{i=1}^{n}P_{i}C_{i}

2. 顺序表上的插入操作

(1)顺序表插入算法的思想

线性表的插入运算是指在表的第i(1≤i≤n+1)个位置上,插入一个新结点e,使长度为n的线性表(a1,…,ai-1,ai,…,an)变成长度为n+1的线性表(a1,…,ai-1,e,ai,…,an)

在这里插入图片描述

算法思想:

  1. 判断插入位置 i 是否合法。
  2. 判断顺序表的存储空间是否已满,若已满返回ERROR。
  3. 将第n至第ì 位的元素依次向后移动一个位置,空出第i个位置。
  4. 将要插入的新元素e放入第i个位置。
  5. 表长加1,插入成功返回OK。

(2)插入算法实现

Status ListInsert_Sq(SqList &L,int i,ElemType e){//i值不合法if(i < 1 || i > L.length+1)  return ERROR;//当前存储空间已满if(L.length == MAXSIZE) return ERROR;//插入位置及之后的元素后移for(j = L.length-1;j>=i-1;j--)L.elem[j+1] = L.elem[j];//将新元素e放入第i个位置L.elem[i-1] = e;//表长增1L.length++;return OK;
}

(3)顺序表插入算法分析

算法时间主要耗费在移动元素的操作上

  • 若插入在尾结点之后,则根本无需移动(特别快);
  • 若插入在首结点之前,则表中元素全部后移(特别慢);
  • 若要考虑在各种位置插入(共n+1种可能)的平均移动次数,该如何计算?
    在这里插入图片描述
  • 顺序表插入算法的平均时间复杂度为O(n)。

2. 顺序表上的删除操作

(1)顺序表删除算法的思想

线性表的删除运算是指将表的第i(1 ≤ i ≤ n)个结点删除使长度为n 的线性表(a1, …, ai-1, ai,ai+1,…,an )变成长度为n-1的线性表(a1, …, ai-1, ai+1,…,an )

算法思想:

  1. 判断删除位置 i 是否合法(合法值为1 ≤ i ≤ n)。
  2. 将欲删除的元素保留在e中。
  3. 将第i+1至第 n 位的元素依次向前移动一个位置。
  4. 表长减1,删除成功返回OK。

(2)删除算法实现

Status ListDelete_Sq(SqList &L,int i){//i值不合法if((i < 1) || (i > L.length))  return ERROR;//被删除元素之后的元素前移for (j = i;j <= L.length - 1; j++)L.elem[j-1] = L.elem[j];//表长减1L.length--;return OK;
}

(3)顺序表删除算法分析

算法时间主要耗费在移动元素的操作上

  • 若删除尾结点,则根本无需移动(特别快);
  • 若删除首结点,则表中 n-1个 元素全部前移(特别慢);
  • 若要考虑在各种位置删除(共 n 种可能)的平均移动次数,该如何计算?
    在这里插入图片描述
  • 顺序表删除算法的平均时间复杂度为O(n)。

3. 顺序表总结

  • 顺序表(线性表的顺序存储结构)的特点
  1. 利用数据元素的存储位置表示线性表中相邻数据元素之间的前后关系,即线性表的逻辑结构与存储结构一致
  2. 在访问线性表时,可以快速地计算出任何一个数据元素的存储地址,因此可以粗略地认为,访问每个元素所花时间相等
    这种存取元素的方法被称为随机存取法
  • 线性表的基本操作

在这里插入图片描述

  • 顺序表的操作算法分析

在这里插入图片描述

  • 顺序表的优缺点

在这里插入图片描述

http://www.dtcms.com/wzjs/278850.html

相关文章:

  • 自适应网站模板源码百度提交网站收录查询
  • 美食网站素材总推荐榜总点击榜总排行榜
  • 网站建设网站开发外贸seo优化
  • 义乌本地网站开发广州网站排名专业乐云seo
  • 进口食品销售销售在那个网站做百度通用网址
  • 做58同城那样的网站今天的新闻
  • dw 做简单静态网站怎样注册个人网站
  • 利用大平台做网站营销存在的问题及改进
  • 淘宝联盟怎么建网站网站注册信息查询
  • 专门做塑胶原料副牌网站谷歌推广培训
  • 唐山网站主页制作推广软文发布平台
  • 网站建设的开发方式和费用培训心得体会范文大全1000
  • 免费的奖励网站有哪些深圳企业黄页网
  • 邹城做网站鼓楼网页seo搜索引擎优化
  • 企业网站建设规划百度搜索关键词设置
  • 大连flash网站进入百度网首页
  • 网站建设经典案例html网页制作
  • 免费做网站站标seo查询百科
  • 找人做网站应该注意什么优化公司结构
  • 怎样把网站做的好看打造龙头建设示范
  • net网站开发 介绍苹果看国外新闻的app
  • 裸体做哎按摩网站沈阳网站制作公司
  • 建设银行网络学习网站软文世界
  • 如何查看网站做没做竞价百度竞价代理商
  • 重庆网站建设公司有哪些内容千万不要学网络营销
  • 学校网站做几级等保免费自助建站哪个最好
  • 大朗做网站公司肇庆seo排名
  • 单页网站怎么做seo网页制作与网站建设实战教程
  • 长沙做网站华夏思源培训机构官网
  • 转转怎么做钓鱼网站国外seo大神