算法学习笔记(4): 并查集及其优化

# 并查集 并查集,Disjoint-Set,或者通俗一点,叫做MergeFind-Set,是一种可以动态维护若干个不重叠的集合,并支持集合之间的合并与查询的数据结构。 集体来说,并查集支持下列两个操作: - Find,查询元素所属集合 - Merge,将两个元素所属集合合并 一般来说,为了具体实现

从零做软件开发项目系列之二——需求调研

在接到软件开发任务之后,第一件要做的事情就是进行需求调研工作,基于前期的沟通以及合同向用户了解具体需求,从而有针对性地开展后续工作。整个调研过程分为调研准备,调研实施,需求分析。

软件设计模式系列之二———抽象工厂模式

抽象工厂模式是一种创建型设计模式,它提供了一种创建一组相关或相互依赖对象的方式,而无需指定它们的具体类。该模式以一组抽象接口为核心,包括抽象工厂接口和一组抽象产品接口,每个具体工厂类负责创建特定产品家族,保证这些产品之间的兼容性。客户端代码通过与抽象工厂和抽象产品接口交互,可以轻松地切换不同工厂来创建不同系列的产品。

软件设计模式系列之三———工厂方法模式

工厂方法模式是一种常见的设计模式,属于创建型设计模式之一,它在软件工程中用于对象的创建。该模式的主要思想是将对象的创建过程抽象化,将具体对象的实例化延迟到子类中完成,以便在不同情况下可以创建不同类型的对象,而客户端代码不需要知道实际创建的对象类型。

软件设计模式系列之四——简单工厂模式

简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,用于对象的创建,它属于工厂模式的一种。简单工厂模式的主要目标是封装对象的创建过程,使客户端代码与具体类的实例化解耦,从而提高代码的可维护性和可扩展性。

软件设计模式系列之九——桥接模式

桥接模式是一种结构型设计模式,它用于将抽象部分与其实现部分分离,以便它们可以独立地变化。这种模式涉及一个接口,它充当一个桥,使得具体类可以在不影响客户端代码的情况下改变。桥接模式将继承关系转化为组合关系,从而减少类之间的紧密耦合度,使得系统更加灵活和可扩展。

从“一云多芯”支持,看多元算力的全栈云方案

摘要:华为云Stack如何在不同CPU架构下,构建信创云平台多元算力的全栈解决方案?本文将为你具体阐释。 本文分享自华为云社区《从“一云多芯”支持,看多元算力的全栈云方案》,作者:徐安 华为云Stack资深架构师。 背景 华为云Stack作为华为云在政企市场的品牌,是政企客户智能升级的首选平台。随着

ATC:一个能将主流开源框架模型转换为昇腾模型的神奇工具

摘要:本文介绍了昇腾CANN提供的模型转换工具ATC,介绍了其功能、架构,并以具体样例介绍了该工具的基本使用方法以及常用设置。 本文分享自华为云社区《使用ATC工具将主流开源框架模型转换为昇腾模型》,作者: 昇腾CANN。 什么是ATC,它能做什么? 昇腾张量编译器(Ascend Tensor Co

Ascend CL两种数据预处理的方式:AIPP和DVPP

摘要:本文介绍了昇腾CANN提供的两种数据预处理的方式:DVPP和AIPP,介绍了两者的功能、差别及联系,并以具体代码示例介绍了如何使用DVPP和AIPP的功能。 本文分享自华为云社区《了解AscendCL数据预处理的两种方式:AIPP和DVPP》,作者:昇腾CANN。 数据预处理的典型使用场景 受

【数仓运维实践】关于GaussDB(DWS)单SQL磁盘空间管控

摘要:本文主要讲解数仓运维中遇到单SQL磁盘空间管控问题的解析和方案。 本文分享自华为云社区《GaussDB(DWS)运维 -- 单SQL磁盘空间管控》,作者: 譡里个檔。 【问题描述】 执行部分SQL语句时出现如下报错信息(具体数值可能因为配置有差异),本文针对根因和场景触发场景,确定触发此类问题

从缓存的本质说起,说服技术大佬用Redis

摘要:在技术领域中,没有银弹。我们需要不断探索和研究新的技术,结合具体问题和需求,选择最适合的解决方案。 本文分享自华为云社区《知乎问题:如何说服技术老大用 Redis ?》,作者:勇哥java实战分享。 最近在某问答平台看到一个技术讨论:如何说服技术老大用Redis? “他总觉得用Redis每次都

一文详解数据仓库的物理细粒度备份恢复

华为云技术专家带你读懂数据仓库的物理细粒度备份恢复,包括它的优势、恢复的基本流程和具体使用实践。

每日一题:vue3自定义指令大全(呕心沥血所作,附可运行项目源码)

1.VUE常用指令大全 本项目所有指令均为全局注册,使用时直接在组件中使用即可。 指令目录:src/directives 页面目录:src/views 具体可查看源码 1.1 权限指令 封装一个权限指令,在模板中根据用户权限来控制元素的显示或隐藏。 permission.js import { re

项目开展CICD的实践探路

本文介绍了作者对CICD的理解以及在项目中开展CICD的几种场景,总结了每种场景实践的关键节点、带来的收益,以及结合具体项目开展的实际应用。读者可以借鉴本文中描述的场景,或借鉴文中提到的实践方式,在项目中开展CICD,为项目在持续集成部署上做具体的支撑。

Spring源码系列(补充):详解ApplicationContext

本文介绍了Spring框架中ApplicationContext的几个核心概念,包括MessageSource、ResourcePatternResolver、获取运行时环境、ApplicationEventPublisher和OrderComparator。对于每个概念,文章都提供了具体的用法示例和注意事项。如果您正在学习或使用Spring框架,本文将为您提供有价值的参考。

零拷贝技术:减少数据复制和上下文切换,提高网络传输效率(下)

本章节主要讨论了如何通过零拷贝技术来优化文件传输的性能。零拷贝技术主要通过减少用户态和内核态之间的上下文切换次数和数据拷贝次数来提高性能。具体来说,介绍了两种实现零拷贝的方式:mmap + write和sendfile。使用mmap + write可以减少一次数据拷贝过程,而使用sendfile系统调用可以进一步减少系统调用和数据拷贝次数。此外,还介绍了如果网卡支持SG-DMA技术,可以通过DMA将数据直接拷贝到网卡缓冲区,实现真正的零拷贝。通过这些优化方法,可以显著提高文件传输的性能。

迭代失败的4个迹象,团队中了几个?快来看看如何解决!

迭代在Scrum中有着举足轻重的作用,它能将产品愿望清单转化为可操作的任务,将头脑风暴塑造成具体结果。 迭代不仅加速了项目交付,甚至还创造了一种责任文化,尤其针对在地理位置上分散的团队。 虽然迭代一直是快速推进项目管理的可靠方法,但如果做得不好,它们可能会造成严重的流程不平衡。 迭代永远不会让我们失

jvm中类和对象定义存储基础知识

在Java虚拟机中,类和对象是程序的基本组成单元。类定义了一组对象的共性特征和行为,是Java程序中最基本的代码单元。而对象则是具体的实例,有自己独特的状态和行为。在JVM中,类和对象都需要进行存储,因此了解类和对象的存储基础知识对于Java程序员来说是非常重要的。

开源免费的文件投喂与问答工具,构建你的第二大脑

利用AI帮你读文章、利用AI帮你分析非结构化数据,这些最为潮流的AI辅助工具,相信很多读者都在各种媒体上看到过了。但还是有不少人并没有真正的使用过,这里有很多原因导致,具体就不细说了,懂的都懂。 今天TJ就给大家推荐一个你可以在线使用,也可以自己搭建的AI辅助工具:[**Quivr**](https

Linux 安装软件的几种方式

哈喽大家好,我是咸鱼 相信小伙伴们都知道在 Linux 中,安装软件一般有三种方式 * yum 安装 * rpm 安装 * 源码编译安装 咸鱼平时三种安装方式都会用,但是具体原理和区别却没有去深入了解过 结果上周部门刚来的新人问我这几种安装方式的时候,一下子把我问懵了 那么今天咸鱼将会向小伙伴们介绍