王道p18 3.对长度为n的顺序表L,编写一个时间复杂度为 O(n)、空间复杂度为 O(1)的算法,该算法删除线性表中所有值为x的数据元素。(c语言代码实现)

这篇具有很好参考价值的文章主要介绍了王道p18 3.对长度为n的顺序表L,编写一个时间复杂度为 O(n)、空间复杂度为 O(1)的算法,该算法删除线性表中所有值为x的数据元素。(c语言代码实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

视频讲解在这里(谢谢各位大佬) 👇

p18 第三题数据结构课后算法题_哔哩哔哩_bilibili

本题代码如下

void deletex(struct sqlist* s, int x)
{
	int k = 0;
	int i = 0;
	for (i = 0; i < s->length; i++)
	{
		if (s->a[i] != x)//只要不等于x,就将值移到k下标处
		{
			s->a[k] = s->a[i];
			k++;
		}
	}
	s->length = k;
}

完整测试代码

#include<stdio.h>
#define Max 10
struct sqlist
{
	int a[Max];
	int length;
};
void deletex(struct sqlist* s, int x)
{
	int k = 0;
	int i = 0;
	for (i = 0; i < s->length; i++)
	{
		if (s->a[i] != x)//只要不等于x,就将值移到k下标处
		{
			s->a[k] = s->a[i];
			k++;
		}
	}
	s->length = k;
}
int main()
{
	struct sqlist s;
	int j = 0;
	s.length = 6;
	for (j = 0; j < s.length; j++)
		scanf("%d", &s.a[j]);
	printf("原始顺序表为:");
	for (j = 0; j < s.length; j++)
		printf("%d", s.a[j]);
	deletex(&s, 1);
	printf("\n删除x后的顺序表为:");
	for (j = 0; j < s.length; j++)
		printf("%d", s.a[j]);
	return 0;
}

王道p18 3.对长度为n的顺序表L,编写一个时间复杂度为 O(n)、空间复杂度为 O(1)的算法,该算法删除线性表中所有值为x的数据元素。(c语言代码实现),顺序表,算法,c语言,数据结构文章来源地址https://www.toymoban.com/news/detail-739930.html

到了这里,关于王道p18 3.对长度为n的顺序表L,编写一个时间复杂度为 O(n)、空间复杂度为 O(1)的算法,该算法删除线性表中所有值为x的数据元素。(c语言代码实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 创建一个包括n个结点的有序单链表的时间复杂度是( )。** A.O(1) B.O(n) C.O(n2) D.O(nlog2n) 答案:C

    809数据结构和908数据结构与算法_练习 第2章 线性表 (11)创建一个包括n个结点的有序单链表的时间复杂度是( )。 A.O(1) B.O(n) C.O(n2) D.O(nlog2n) 答案:C 解释:单链表创建的时间复杂度是O(n),而要建立一个有序的单链表,则每生成一个新结点时需要和已有的结点进行比较,

    2024年02月06日
    浏览(32)
  • 2023王道数据结构P18.9

    2023年04月22日
    浏览(27)
  • 【算法证明 三】计算顺序统计量的复杂度

    计算顺序统计量,在 c++ 标准库中对应有一个函数: nth_element 。其作用是求解一个数组中第 k 大的数字。常见的算法是基于 partition 的分治算法。不难证明这种算法的最坏复杂度是 Θ ( n 2 ) Theta(n^2) Θ ( n 2 ) 。但是其期望复杂度是 Θ ( n ) Theta(n) Θ ( n ) 。 另外,存在一种最坏复

    2024年02月07日
    浏览(75)
  • 数据结构(王道)——线性表之静态链表&顺序表和链表的比较

      如何定义一个静态链表     初始化静态链表:   静态链表的查找、插入、删除           创: 销:   增、删:   查:   顺序表、链表该如何选择?  

    2024年02月16日
    浏览(33)
  • 数据结构_复杂度+之后的事-1.18

    本质是个 函数 ,表示复杂度的函数。 用 O 渐进粗略表示,如O(1), O(N)。(这个符号以前在学拓扑结构时见过,现在回想,也确实是算法相关的): 1)常数用O(1)表示; 2)保留最高阶项,并去掉系数。2N^3+N+10-----O(N^3)。 3)对于多情况复杂度,按最复杂情况的计算。 时间复

    2024年01月19日
    浏览(40)
  • 数据结构(2)时间复杂度——渐进时间复杂度、渐进上界、渐进下界

    目录 2.1.概述 2.2.时间复杂度的计算 2.2.1.渐进复杂度 2.2.2.渐进上界 2.2.3.渐进下届 2.2.4.复杂度排序 2.2.5.举几个例子 算法的基本定义: 求解问题的一系列计算或者操作。 衡量算法性能的指标: 时间复杂性 空间复杂性 这两个指标里最有用的是时间复杂度,平时谈的算法复杂度

    2024年02月11日
    浏览(30)
  • 时间复杂度--算法的时间效率衡量标准

            很多同学在程序开发和算法调优的过程中,经常会接触到时间复杂度的概念,那究竟什么是时间复杂度呢?         在回答这个问题之前,我们先举一个例子,我们把编写一个程序的过程类比成指挥一场战役,程序开发人员就扮演着指挥者的角色,编写的代码就是被指挥的

    2024年02月03日
    浏览(27)
  • 深入理解算法的时间效率衡量标准--时间复杂度

            很多同学在程序开发和算法调优的过程中,经常会接触到时间复杂度的概念,那究竟什么是时间复杂度呢?         在回答这个问题之前,我们先举一个例子,我们把编写一个程序的过程类比成指挥一场战役,程序开发人员就扮演着指挥者的角色,编写的代码就是被指挥的

    2024年02月04日
    浏览(47)
  • 时间复杂度和空间复杂度

    时间复杂度和空间复杂度是用来评估算法性能的两个重要指标。 时间复杂度(Time Complexity)是衡量算法执行时间随输入规模增长而增长的度量。它表示了算法解决问题所需的时间量级。常见的时间复杂度有: 常数时间复杂度 O(1):无论输入规模的大小,算法的执行时间都是固

    2024年01月17日
    浏览(35)
  • 算法时间空间复杂度

    1. 有穷性 :执行有穷步(有限步)之后结束。 2. 确定性 :只有唯一的执行路径。 3. 可行性 :代码可以执行起来。 4、 输入 :零个或多个输入。 5. 输出 :一个或多个输出。 时间效率和空间效率有时候是有矛盾的 概念: 若有某个辅助函数 f ( n ) color{pink}{f(n)} f ( n ) 使得当

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包