首页 > 其他分享 >今日学题一道

今日学题一道

时间:2024-01-30 21:23:40浏览次数:21  
标签:线性表 删除 item 学题 元素 值为 一道 算法 今日

(10)已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素。
[题目分析] 
在顺序存储的线性表上删除元素,通常要涉及到一系列元素的移动(删第i个元素,第i+1至第n个元素要依次前移)。本题要求删除线性表中所有值为item的数据元素,并未要求元素间的相对位置不变。因此可以考虑设头尾两个指针(i=1,j=n),从两端向中间移动,凡遇到值item的数据元素时,直接将右端元素左移至值为item的数据元素位置。
[算法描述]
void  Delete(ElemType A[ ],int  n)
∥A是有n个元素的一维数组,本算法删除A中所有值为item的元素。
{i=1;j=n;∥设置数组低、高端指针(下标)。
 while(i<j)
   {while(i<j && A[i]!=item)i++;         ∥若值不为item,左移指针。
    if(i<j)while(i<j && A[j]==item)j--;∥若右端元素为item,指针左移
    if(i<j)A[i++]=A[j--];}

 

标签:线性表,删除,item,学题,元素,值为,一道,算法,今日
From: https://www.cnblogs.com/muzhaodi/p/17998005

相关文章

  • 今日总结
    一、spark入门与安装1、spark概述1)了解Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark......
  • 今日回顾-回溯算法-17. 电话号码的字母组合
    注意点&感悟:我知道为什么,当初有些学霸说要复习了。因为有的知识点,你一遍没学会,自然要重复学习。所为复习,就是再学一遍。而简单的知识点,就不需要复习了,你已经明显知道自己掌握了,就不需要复习了。而预习呢?是为了,让提前学一遍,更多的是针对那些上课时间有限,以及学生等不及的情况......
  • 今日总结
    题【A02】文心一言插件设计与开发【百度】发布时间: 2023-12-2713:54:241.命题方向智能计算2.题目类别应用类3.题目名称文心大模型插件设计与开发4.背景说明【整体背景】大规模语言模型相继发布,生成式人工智能技术及产品的快速迭代重塑着千行百业,带动了人工智能产业......
  • 每日一道面试题:Java中序列化与反序列化
    写在开头哈喽大家好,在高铁上码字的感觉是真不爽啊,小桌板又拥挤,旁边的小朋友也比较的吵闹,影响思绪,但这丝毫不影响咱学习的劲头!哈哈哈,在这喧哗的车厢中,思考着这样的一个问题,Java中的对象是如何在各个方法,或者网络中流转的呢?通过这个问题便引出了我们今天的主人公:序列化与反序列化!......
  • 今日总结
    打开“文心一言”应用程序,您会看到一个简洁明了的界面,界面上有“输入文本”和“选择主题”两个选项。首先,您需要输入要生成的文本内容。在输入框中输入您要生成的文本内容,然后选择您要生成的语言和文字风格(例如普通文字、新闻报道、小说等)。接下来,您需要选择生成文本的主题。......
  • 每日一道Java面试题:Java是值传递还是引用传递?
    写在开头Java是值传递还是引用传递?这个问题几乎100%的出现在了各大主流Java面试题中,知识点很小,但很考验面试者对于Java运行的理解,今晚趁着生产投产的空子,过来小聊一下。实参与形参所谓的值传递or引用传递是指方法在调用的过程中实参传递的两种变现形式,那么好,想搞清楚这个问题的......
  • 被Null条件运算符摆了一道
    C#6.0引入了Null条件运算符:obj?.Invoke();等价于if(obj!=null)obj.Invoke();即遇到null时短路。于是,我不假思索地写下了这样的代码:①awaitobj?.InvokeAsync();遇到null时短路嘛,我以为是等价于这样:②if(obj!=null)awaitobj.InvokeAsync(); 于是乎,......
  • 每日一道Java面试题:方法重载与方法重写,这把指定让你明明白白!
    写在开头请聊一聊Java中方法的重写和重载?这个问题应该是各大厂面试时问的最多的话题之一了,它们几乎贯穿了我们日常的开发工作,在过往的博客中我们多多少少都提到过重载与重写,而今天我们就一起来详细的学习一下这二者的功能与区别!重载与重写的定义重写:类实现接口或者子类继承......
  • 今日总结
    Spark四大特点Spark使用Scala语言进行实现,它是一种面向对、函数式编程语言,能够像操作本地集合一样轻松的操作分布式数据集。Spark具有运行速度快、易用性好、通用性强和随处运行等特点。速度快由于ApacheSpark支持内存计算,并且通过DAG(有向无环图)执行引擎支持无环数据流,所......
  • 0124今日收获
    又是元气满满的一天今日代码1今日代码2今日代码3今日代码4今日代码5今日代码6今日代码7又是元气满满的一天......