交叉列表

SPSS统计分析及其交叉联列表|“朝闻道“知识分享大赛 判定方法一:在卡方检验中,如果卡方统计量的观测值大于卡方卡方的临界值,则认为卡方值足够大,实际分布和期望分布之间的差距显著,拒绝原假设,断定连列表的行列变量互不独立,存在相关关系,反之,接受原假设,行列变量独立。(四)卡方检验的说明:列联表中不应有期望频数小于1的单元格,或不应有大量的期望频数小于5的单元格。判定方法二:在卡方检验中,如果卡方观测值的概率小于等于显著性水平,拒绝原假设,断定行列变量不独立,反之,接受原假设,行列变量独立。(三)全距:也称极差,全距大的数据比全距小的数据分散。 阅读详情
序言

今天总结一下交叉列表怎么如何找到交叉点?

一、思路概述

方法一:
  1. 分别定义两个指针变量p1和p2。
  2. 以p1为基准,遍历p2。
  3. 假设遍历完p2一遍后没有找到交叉点。
  4. p1后移一个节点,然后再遍历p2列表。
  5. 这样依次遍历两个列表,如果找到返回节点的值,若没有找到返回-1。
代码示例
#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
	int value;
	struct Node* next;
} Node;

int findCommen(Node* list1, Node* list2) {
	Node* p1 = list1;
	Node* p2 = list2;

	while(p2 != NULL) {
		for(p1 = list1; p1 != NULL; p1 = p1 -> next) {
			if (p1 == p2) {
				return p1 -> value;
			}
		}
		p2 = p2 -> next;
	}

	return -1;
}

int main() {
	int value = 0;
	Node n1, n2, n3, n4, n5, n6, n7;
	n1.value = 1;
	n2.value = 2;
	n3.value = 3;
	n4.value = 4;
	n5.value = 5;
	n6.value = 6;
	n7.value = 7;

	n1.next = &n2;
	n2.next = &n3;
	n3.next = &n4;
	n4.next = &n5;
	n5.next = &n6;
	n6.next = NULL;
	n7.next = &n4;

	Node* p1 = &n1;
	Node* p2 = &n7;

	value = findCommen(p1, p2);
	if (value == -1)
	{
		printf("No intersection");
	} else {
		printf("The value of the intersection point is %d\n", value);
	}

	return 0;
}
运行结果

在这里插入图片描述

总结
用这种方法虽然实现起来比较简单,但是时间复杂度比较高。
因为我们在寻找交叉点的时候,其中一个列表每遍历一个节点另一个列表就要全部遍历一遍。
所以假设列表一有m个节点;列表二有n个节点
则时间复杂度为O(m * n)
方法二:
  1. 首先分别遍历两个列表得到列表的长度。
  2. 计算两个列表的长度差。
  3. 将长的那个列表先往后移动两个列表差值的节点。
  4. 这样两个列表就一样长了,然后同时遍历两个列表。
  5. 找到交叉点就返回该节点对应的值。
代码示例
#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
	int value;
	struct Node* next;
} Node;

//计算列表的长度
int listCount(Node* list) {
	Node* p = list;
	int i = 0;

	while(p != NULL) {
		p = p -> next;
		i++;
	}
	return i;
}

//使两个列表的长度相等
Node* creatCommen(Node* list, int offSet) {
	Node* p = list;
	
	for (int i = 0; i < offSet; ++i)
	{
		p = p -> next;
	}

	return p;
}
//遍历两个列表返回交叉点的值
int findCommen(Node* list1, Node* list2) {
	int longth1 = listCount(list1);
	int shorth2 = listCount(list2);

	Node* longlist = list1;
	Node* shortlist = list2;
	Node* p1 = NULL;

	if (shorth2 > longth1)
	{
		longlist = list2;
		shortlist = list1;
	}
	int offSet = abs(longth1 - shorth2);

	if (offSet == 0)
	{
		p1 = longlist;
	} else {
		p1 = creatCommen(longlist, offSet);
	}

	Node* p2 = shortlist;
	
	while(p1 != NULL) {
		if (p1 == p2)
		{
			return p1 -> value;
		}
		p1 = p1 -> next;
		p2 = p2 -> next;
	}

	return -1;
}

int main() {
	int value = 0;
	Node n1, n2, n3, n4, n5, n6, n7;
	n1.value = 1;
	n2.value = 2;
	n3.value = 3;
	n4.value = 4;
	n5.value = 5;
	n6.value = 6;
	n7.value = 7;

	n1.next = &n2;
	n2.next = &n3;
	n3.next = &n4;
	n4.next = &n5;
	n5.next = &n6;
	n6.next = NULL;
	n7.next = &n4;

	Node* p1 = &n1;
	Node* p2 = &n7;

	value = findCommen(p1, p2);
	if (value == -1)
	{
		printf("No intersection");
	} else {
		printf("The value of the intersection point is %d\n", value);
	}

	return 0;
}
运行结果

在这里插入图片描述

总结
用这种方法相比较第一种方法降低了时间复杂度。
只有在刚开始的时候遍历了两个列表,然后就开始找,找到就返回。
假设列表一有m个节点;列表二有n个节点。
则时间复杂度为O(m + n)。
python 列表交叉合并 参考:https://www.zhihu.com/question/46872925import intertools&gt;&gt;&gt; list(itertools.chain.from_iterable(zip(l,m))) ['美国版', 'nz', '序言', 'n', '\n', 'x', '\n', 'x', '-', 'x', '-', 'x', '-', 'x', '-', ... 阅读详情

相关推荐

《数据分析实战》--用R做交叉列表

《数据分析实战》–用R做交叉列表 本文参考的是《数据分析实战》第四章。 背景:针对某公司的产品,发现当月的用户使用量减少了很多,但是和上月相比,本月的商业宣传和月度活动并无大的变化,需查明用户数量减少的原因。 现状:同上月相比用户数减少...

Cocaine_bai的博客 1万+

【Pandas中的交叉表(Crosstab)详解】

交叉表(Crosstab)是数据分析中一种常见的数据透视表,用于展示两个或多个分类变量之间的频率分布关系。在Python的数据处理库Pandas中,我们可以使用函数来轻松地创建交叉表,crosstab()

武帝为此的博客 1万+

word的自定义编号+自定义多级列表+交叉引用

word的自定义编号+自定义多级列表+交叉引用 之前一直用letax排版觉得letax的参考文献能够自动的进行更新实在是很方便,不用因为增加一个或者减少一个文献而导致编号的错乱。我之前一直以为world没有类似的功能,但是最近由于工作的需要,才发现原来不是word没有这个功能,只是自己不会用。经过高人的指点,现在赶快记录一下一遍以后的工作中不在一个一个的该参...

davidsmith8的博客 4221

交叉列表的思路

1.先组装一个List 2.组装Map的时候,第一个为组装为表头,其他的为列表 3.组装列表的时候,因为是主子表,所以不能直接根据findList直接查询,要一个主表查询,字表根据主表关联的ID查询 4,在组装列表的时候,导致了列表查询错位的问题,是因为,查询的时候不对应,所以用了group by desc 有序的查询。

qq_26417975的博客 550

列表交叉合并的Python实现方法

如果我们希望在合并时保留较长列表中的剩余元素,并使用某个特定值填充较短列表的缺失部分,我们可以使用itertools模块的zip_longest函数。列表交叉合并是指将两个列表按照交叉的方式合并成一个新的列表。换句话说,将两个列表的元素按照交替的顺序排列在一起,形成一个新的列表。在上面的代码中,我们首先使用zip函数将list1和list2的元素进行配对,得到一个新的可迭代对象。在上面的代码中,我们使用zip_longest函数来代替zip函数,并指定了一个fillvalue参数作为填充缺失部分的值。

ByteHackerX的博客 507

ARM芯片内部的高速公路:手把手教你用AMBA Designer配置NIC-400互连控制器

本文详细介绍了如何使用AMBA Designer工具配置ARM芯片中的NIC-400互连控制器,涵盖从基础拓扑构建到高级QoS设置的完整流程。通过实际案例演示,帮助开发者掌握AXI协议下的高效片上网络设计,提升SoC性能与能效比。

weixin_26750481的博客 314

什么是交叉表

今天有人问我什么是交叉表,汗!一时还不好解释,就上网搜了一下,找到了一些资料: “交叉表”对象是一个网格,用来根据指定的条件返回值。数据显示在压缩行和列中。这种格式易于比较数据并辨别其趋势。它由三个元素组成: 行列摘要字段 “交叉表”中的行沿水平方向延伸(从一侧到另一侧)。在上面的示例中,“手套”(Gloves) 是一行。“交叉表”中的列沿垂直方向延伸(上

赶路人儿 1万+

Comsol 压电换能器声场仿真(远场分析、边界元法优化)

本文详细介绍了在Comsol中使用边界元法进行压电换能器远场声场仿真的高效方法。针对传统有限元法计算远场时内存消耗大、耗时长的问题,文章阐述了边界元法在处理无限域、提升计算效率和精确获取远场指向性方面的核心优势,并提供了从多物理场耦合设置、网格划分策略到求解器配置及结果验证的完整实战指南。

weixin_29045585的博客 408

Pandas透视表和交叉表

参考:《利用Python进行数据分析》 透视表与交叉表的介绍和例子

hustqb的博客 3万+

NVIDIA DGX Spark 开发环境深度配置与优化指南

定期系统维护每月执行一次完整的系统更新监控存储空间使用情况,及时清理临时文件定期检查硬件健康状况开发习惯优化使用tmux或screen管理长时间运行的任务配置自动化测试和代码质量检查建立完善的项目文档体系性能调优周期每月重新评估和调整系统参数根据工作负载特点优化容器配置持续监控和记录性能指标DGX Spark作为一个强大的AI开发平台,其真正的价值需要通过精细的环境配置和优化才能充分发挥。本文提供的配置方案和建议均基于实际生产环境经验,旨在帮助开发者构建稳定、高效、可维护的开发环境。

time_days的博客 3692

专有钉钉小程序(浙政钉)开发搭建流程总览

最近公司有一个项目要做浙政钉,让我来负责做。靠,我一脸懵,开发了两年多不知道浙政钉是啥,感觉我眼界还是低了。然后就去百度、同事问了一圈才知道就是个钉钉小程序嘛,然后发布到浙政钉上了。就搭建项目跑起来我都肥了很多事,中间走了很多坑。正好领导让我写《钉钉小程序前端开发流程》,这想着也写个博客吧。下面就是整个流程及我所遇到的坑!

m0_53910290的博客 6358

python列表交叉合并_Python list 两个不等长列表交叉合并

遇到一个需求,需要对两个长度不一定相等的列表进行交叉合并。像拉拉链一样(两边的拉链不一定相等)。如:a = [1, 3, 5]b = [2, 4, 6, 8]需将a, b 合并为 cc = [1, 2, 3, 4, 6, 8]网上又看到定义函数,或者使用 zip,自己觉得不太理想,就想倒腾下,当然有可能下述方法已经有人想到了。方法一:  写 for 循环a = [1, 3, 5]b = [2, 4...

weixin_39994806的博客 1951

MAC-H3C官网inode客户端下载安装

MAC-H3C官网inode客户端下载安装

兴趣是最好的老师 1万+

gh列表交叉原理

我们来自江河梦小组(Scond Effect Group),工程用到gh,所以必须学习好GH插件,而大部分权威资料都来自国外,所以就组织组员翻译来自GH官方论坛的帖子,以便学习。下面是一篇David的帖子讲解列表计算的交叉原理,由黄思颖同学翻译。 Cross Reference; what is it, howdoes it work, why would I need it?列表交叉,是什么,

华夏梦清的专栏 6101

NSIS教程(6): 使用第三方插件

NSIS内置了很多指令,这些指令可以满足我们基本需求,但难免会遇到NSIS没有内置的功能,如进程操作,后台运行(即多线程),7z压缩等等,这个时候我们就需要借助第三方插件来满足我们所需要的功能了。 一、插件获取 NSIS官方收录插件的网址是:http://nsis.sourceforge.net/Category:Plugins,我们可以在这个网站上查找和下载我们需要的插件,该网站上针对每

while(1) { smile(); } 9万+

从 Chat 提示词到可运行 Fiori 应用,ADT for VS Code 正在把 RAP 开发带进 Agent 时代

本文探讨了在VS Code中使用AI辅助进行ABAP RAP开发的新模式。文章指出,传统RAP开发需要手工创建数据库表、CDS视图、行为定义等十多个关联对象,命名和关联关系容易出错。现在通过GitHub Copilot Agent Mode配合ADT MCP Server,开发者可用自然语言描述业务场景直接生成完整的RAP业务对象。这种生成式开发的核心价值在于:1)通过标准化工具接口(MCP)连接ABAP后端,确保生成符合规范的RAP对象;2)能正确处理多实体组合场景下的命名一致性和关联关系;3)保持生成结

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 89

SQL查询生成交叉列表

///查询生成交叉列表 CREATE TABLE AA (AID int, ANAME VARCHAR(10), AKM VARCHAR(10) ) insert into AA values(1,'A','G'); insert into AA values(2,'A','R'); insert into AA values(3,'A','B'); insert...

weixin_30770495的博客 97

极智嘉嵌入式面试题及参考答案

IIC(Inter-Integrated Circuit)即集成电路总线,是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。它仅使用两根线,即串行数据线 SDA 和串行时钟线 SCL,就能实现多个设备之间的通信,具有简单、高效、占用资源少等优点,广泛应用于各种嵌入式系统中。

大模型大数据攻城狮的专栏 922

python列表交叉合并_Python list 两个不等长列表交叉合并(示例代码)

遇到一个需求,需要对两个长度不一定相等的列表进行交叉合并。像拉拉链一样(两边的拉链不一定相等)。如:a = [1, 3, 5]b = [2, 4, 6, 8]需将a, b 合并为 cc = [1, 2, 3, 4, 6, 8]网上又看到定义函数,或者使用 zip,自己觉得不太理想,就想倒腾下,当然有可能下述方法已经有人想到了。方法一:  写 for 循环a = [1, 3, 5]b = [2, 4...

weixin_39849254的博客 652

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python两个list交叉合并_Python list 两个不等长列表交叉合并

遇到一个需求,需要对两个长度不一定相等的列表进行交叉合并。像拉拉链一样(两边的拉链不一定相等)。如:a = [1, 3, 5]b = [2, 4, 6, 8]需将a, b 合并为 cc = [1, 2, 3, 4, 6, 8]网上又看到定义函数,或者使用 zip,自己觉得不太理想,就想倒腾下,当然有可能下述方法已经有人想到了。方法一:  写 for 循环a = [1, 3, 5]b = [2, 4...

weixin_42471823的博客 4379

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

交叉列表的隔行颜色转换设置

关于客户要求的交叉列表隔行显示不同颜色的需求,大致方法如下: 一,在交叉列表单元格的属性框中设置条件样式 二,编辑条件样式,使用RowNumber函数返回行号,再使用Mod函数让行号与2取余 三,若表达式返回true,则设置颜色为浅蓝,之后确定 设置完成之后的报表效果如下 6月29号更新第二种方法: 选中列表或交叉表,右键—&gt;应用表格样式—&gt;行1—&gt;右键—&gt; ...

cherry7434的博客 450

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ReportStudio入门教程(六十七) - 使用列表还是交叉表

中文网址:  http://www.cognoschina.net/?action-blogdetail-uid-5608-id-30081 对比了使用列表和交叉

什么是江湖? 2115

cognos-rs用下拉列表来控制交叉表的显示内容

cognos-rs用下拉列表来控制交叉表的显示内容 功能:用下拉列表来控制交叉表的显示内容,主要控件是:值提示、提交按钮; 如上图,当选择订单笔数时,交叉表表角显示为【订单笔数】-交叉表内容显示为订单笔数;当选择订单金额时,交叉表表角显示为【订单金额】-交叉表内容显示为订单金额; 对于一个老手来说,实现这个功能是很简单的,站在学习的角度...

weixin_30266829的博客 153

python列表交叉合并_使用交叉点合并列表

如果g或{}的元素很大,可以使用不相交集来提高效率。在这个数据结构可以用来将每个元素分类到它应该属于的集合中。在第一步是用所有g集合的索引在g中标记它们,构建一个不相交的集合:g=[[], [], [0, 2], [1, 5], [0, 2, 3, 7], [4, 6], [1, 4, 5, 6], [], [], [3, 7],[99]]g = map(set, g)dss = CDisjoin...

weixin_39785723的博客 7843

Python 如何合并交叉列表

import itertools name = [‘value1’, ‘value2’, ‘value3’, ‘value4’] name_value = [value + “" + ‘value’ for value in name] name_std = [value + "” + ‘std’ for value in name] a = [1, 2, 3, 4] bb = [‘a’, ‘b’, ‘c’, ‘d’] c = list(itertools.chain.from_iterable(zip(

weixin_43156127的博客 1272

标明文献引用及文献列表自动生成(尾注&交叉引用)

摘要:     本文介绍利用Word尾注来注明文献引用,并用交叉引用自动生成文献列表,为论文撰写带来极大便利。最后给出参考文献格式。     撰写论文(或者开题报告或者文献综述)需要在文中标明引用,并生成参考文献列表。一种效率低下的方法,先把论文写好,再标注引用文献(我本科就是这么干的),需要大量重复性工作,在参考文献较多的时候,这种方法不具有可操作性(哪里还记得哪个地方引

u010709676的专栏 1万+
上一篇: 生成随机字符
下一篇: 基于RMI和C-S的服务发现
CodAlun
博客等级 码龄8年 46粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值