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

Day3 25/2/16 SUN

【一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解(马士兵)】https://www.bilibili.com/video/BV13g41157hK?p=4&vd_source=04ee94ad3f2168d7d5252c857a2bf358

目录

2、认识O(NlogN)的排序

2.2 归并排序

2.2.1 思路&代码实现

2.2.2 时间复杂度

2.2.3 应用:小和问题


笔记:

2、认识O(NlogN)的排序

2.2 归并排序

2.2.1 思路&代码实现

在新数组newArr[]开辟存储空间,大小为R-L+1,也就是原始数组的元素个数。

左数组的范围arr[L]到arr[M],右数组的范围arr[M+1]到arr[R],两个指针的范围小于等于各自组的右边界(p1<=M,p2<=R)。

当p1<p2,将p1指向的数拷贝到newArr[i]中,然后指针和i都++;当p2<p1,则对p2进行相同操作;当p1=p2,先拷贝p1再拷贝p2,然后p1++、p2++、i=i+2

当p1先到达右边界,则将p2往后的内容都拷贝到newArr[]中:newArr[i++] = arr[p2++];当p2先达右边界:newArr[i++] = arr[p1++];

整体代码:

public static void mergeSort(int[] arr, int L, int M, int R){int[] newArr = new int[R-L+1];int i=0;int p1=L, p2=M+1;while( p1<=M && p2 <=R ){newArr[i++] = arr[p1] <= arr[p2] ? arr[p1++] : arr[p2++]; //这部分等效于if( arr[p1] <= arr[p2] ){ newArr[i++]=arr[p1++]}else{newArr[i++]=arr[p2++]}}//处理其中一个指针到达边界的情况while ( p1 <= M ){newArr[i++] = arr[p1++]}while ( p2 <= R ){newArr[i++] = arr[p2++]}//如果要将排序后的新结果newArr替换掉旧数组arr,则可以用for循环逐个替换:for( i=0; i<arr.length; i++){arr[L+i] = newArr[i];}}

2.2.2 时间复杂度

如果用master公式计算这个归并排序代码的时间复杂度:T(N) = 2*T(N/2) + O(N)

解释:左数组和右数组的数据量都是N/2,且都是先组内排序再利用双指针遍历后放入数组(遍历操作的时间复杂度是O(N))。

归并排序的时间复杂度O(NlogN)优于选择排序、插入排序等O(N…^2)的原因:

在选择排序、插入排序中,遍历一遍含n个元素的数组只能确定下来一个元素的位置,其余的比较被浪费了。

而在归并排序中,两个子数组的元素都是有序的,因此每一次比较都能确定一个元素的位置并使指针后移,继续比较后续的元素。

2.2.3 应用:小和问题

小和问题:一个数组中,遍历每个元素然后把左侧比当前数小的数累加起来,得到这个数组的小和。

举例数组元素为1、3、4、2、5的例子。

遍历开始前,小和sum=0;

遍历到1,左侧无更小值,sum=0;

遍历到3,左侧有1比3小,sum=sum+1;

遍历到4,左侧有1、3比4小,sum=sum+1+3;

遍历到2,左侧有1比2小,sum=sum+1;

遍历到5,左侧有1、3、4、2比5小,sum=sum+1+3+4+2;

此情景中的最终小和为16。

计算小和有2种时间复杂度不同的方法。

方法1:O(N^2)。使用最纯粹的遍历方法。遍历数组然后将当前元素和左侧元素诸葛比较、加和,得到小和。

方法2:O(logN)。使用了归并排序,对于每个元素,如果它的右侧有m个元素比它大,则再加上m*当前元素的值。

相关文章:

Day3 25/2/16 SUN

【一周刷爆LeetCode&#xff0c;算法大神左神&#xff08;左程云&#xff09;耗时100天打造算法与数据结构基础到高级全家桶教程&#xff0c;直击BTAJ等一线大厂必问算法面试题真题详解&#xff08;马士兵&#xff09;】https://www.bilibili.com/video/BV13g41157hK?p4&v…...

欧洲分组加密算法之Kasumi

目录 (1)FL函数 (2)FO函数 (3)FI函数 密钥扩展算法 欧洲分组加密算法之Kasumi Kasumi分组密码算法是由欧洲标准机构ETSI(European Telecommunications Standards Institute)下属的安全算法组于1999年设计的,被用于构造A5/3、GEA3、f8和f9算法,参与移动通信系统无线…...

vue使用v-chart的实践心得

开发Vue2和Vue3时&#xff0c;我们常常需要将数据以图表的形式展示给用户&#xff0c;而 V-Chart 作为一个轻量级且易于集成的图表库&#xff0c;是 Vue 开发的首选。这篇文章&#xff0c;我将写一下关于我在使用这方面的心得。 echarts官网&#xff1a;https://echarts.apach…...

Endnote使用笔记——持续更新

&#xff08;1&#xff09;如果样式库里没有想要的期刊格式&#xff0c;可以到这个网址进行下载&#xff0c;并放在本地安装Endnote的文件下边的styles文件里&#xff1a; https://endnote.com/downloads/styles/ &#xff08;2&#xff09;EndNote导入参考文献时&#xff0c;关…...

Tetragon:一款基于eBPF的运行时环境安全监控工具

关于Tetragon Tetragon是一款基于eBPF的运行时环境安全监控工具&#xff0c;该工具可以帮助广大研究人员检测并应对安全重大事件&#xff0c;例如流程执行事件、系统调用活动、I/O活动&#xff08;包括网络和文件访问等&#xff09;。 在 Kubernetes 环境中使用时&#xff0c;…...

CAS单点登录(第7版)23.Webflow 管理

如有疑问&#xff0c;请看视频&#xff1a;CAS单点登录&#xff08;第7版&#xff09; Webflow 管理 概述 Webflow定制 CAS 使用 Spring Webflow 对登录和注销协议进行脚本处理。Spring Web Flow 构建在 Spring MVC 之上&#xff0c;并允许实现 Web 应用程序的“流”。流封装…...

word文档中标题的自动编号问题

最近研究了下标题自动编号&#xff0c;记录下来&#xff0c;以备后用。 &#xff08;1&#xff09;从编号1开始&#xff0c;如&#xff1a; 1 ------------------------ 标题1 1.1 ------------------- 标题2 1.1.1 ------------------- 标题3 1.1.1.1 ------------------- 标题…...

kkFileView二开之pdf转图片接口

kkFileView二开之Pdf转图片接口 kkFileView二开系列文章&#xff1a;1 kkFileView源码下载及编译2 Pdf转图片接口2.1 背景2.2 分析2.2 接口开发2.2.1 编写Pdf转图片方法2.2.2 编写转换接口 2.3 接口测试2.3.1 Pdf文件准备2.3.2 pdf2Image 3 部署 kkFileView二开系列文章&#x…...

利用亚马逊云科技RDS for SQL Server配置向量数据存储

生成式人工智能&#xff08;AI&#xff09;正迎来又一个快速发展期&#xff0c;引起了开发者们的广泛关注。将生成式能力集成到商业服务和解决方案中变得非常重要。当前的生成式AI解决方案是机器学习和深度学习模型逐步进化迭代的结果。从深度学习到生成式AI的质变飞跃主要是由…...

vLLM 部署 DeepSeek 大模型避坑指南

本文基于实战经验&#xff0c;提供从环境准备到性能调优的全流程避坑指南。 一、环境准备&#xff1a;驱动与硬件兼容性 1. NVIDIA 驱动与 CUDA 版本对齐 确保NVIDIA驱动和CUDA版本相互匹配是关键。例如&#xff0c;CUDA 12.x需要至少525.60的驱动版本。 # 使用 nvidia-smi…...

本地部署MindSearch(开源 AI 搜索引擎框架),然后上传到 hugging face的Spaces——L2G6

部署MindSearch到 hugging face Spaces上——L2G6 任务1 在 官方的MindSearch页面 复制Spaces应用到自己的Spaces下&#xff0c;Space 名称中需要包含 MindSearch 关键词&#xff0c;请在必要的步骤以及成功的对话测试结果当中 实现过程如下&#xff1a; 2.1 MindSearch 简…...

【大模型系列】Windows系统上运行大语言模型方式

在Windows系统上运行大语言模型&#xff08;LLMs&#xff09;有多种方式&#xff0c;以下是一些具体的方法&#xff1a; GPT4All 简介&#xff1a;GPT4All是一个适用于所有操作系统的LLM框架和聊天机器人应用程序&#xff0c;可以本地运行LLMs&#xff0c;并通过API将其与任何…...

Linux Mem -- Where the mte store and check in the real hardware platform

目录 1 前言 2 MTE tag分类 3 Address tag 4 Memory tag 5 Tag Check 6 Cortex-A710 和 CI-700 系统示例&#xff1a; 1 前言 ARM的MTE允许分配、设置、比较一个 4bit的allocation tag 为16字节粒度的物理地址。当对MTE有一定了解后&#xff0c;应该会产生如下疑问&#…...

连锁企业管理系统的五大核心功能

连锁管理系统对于连锁企业的运营和发展至关重要&#xff0c;以下以核货宝连锁管理系统为例&#xff0c;介绍其五大核心功能&#xff1a; 门店管理功能 门店信息管理&#xff1a;核货宝连锁管理系统可集中管理所有门店的详细信息&#xff0c;包括门店地址、联系方式、营业时间、…...

Docker配置镜像加速-解决黑马商城部署Mysql失败问题

随着 Docker 在容器化应用中的广泛应用&#xff0c;越来越多的开发者选择通过 Docker 来简化开发和部署过程。然而&#xff0c;在使用 Docker 部署应用时&#xff0c;有时会遇到因为镜像下载速度慢或者 MySQL 部署失败等问题&#xff0c;特别是在中国地区&#xff0c;由于网络环…...

Cherno C++ P54 内存:栈与堆

这篇文章我们来谈论一下计算机的内存。在这里&#xff0c;我们着重讨论内存的两个部分&#xff1a;栈与堆。我们需要注意的一点是&#xff0c;这两个概念不是虚拟的&#xff0c;而是在计算机内部真实存在的。它们是我们的CPU当中RAM部分物理上存在的两个区域。我们之所以要重点…...

对项目交接的一些思考

天下大势&#xff0c;分久必合合久必分。这些年交接了很多项目&#xff0c;也从别人那里接手了很多项目。最近又接收了一些项目&#xff0c;但团队接收的效果不是很好&#xff0c;或者说掌握的不全面&#xff0c;所以就在想怎么能够做的更好一些&#xff1f; 团队关系 其实我…...

【PYTORCH】官方的turoria实现中英文翻译

参考 https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html 背景 pytorch官方的是seq2seq是法语到英文&#xff0c;做了一个中文到英文的。 数据集 下载后解压&#xff0c;使用的data\testsets\devset\UNv1.0.devset.zh和UNv1.0.devset.en&#x…...

【算法与数据结构】并查集详解+题目

目录 一&#xff0c;什么是并查集 二&#xff0c;并查集的结构 三&#xff0c;并查集的代码实现 1&#xff0c;并查集的大致结构和初始化 2&#xff0c;find操作 3&#xff0c;Union操作 4&#xff0c;优化 小结&#xff1a; 四&#xff0c;并查集的应用场景 省份…...

【动态路由】系统web url整合系列【springcloud-gateway实现】【不改hosts文件版】组件一:多个Eureka路由过滤器

需求 实现URL web资源整合&#xff0c;实现使用一个web地址访问多个web资源 方案 本方案使用SpringCloud Gateway实现&#xff0c;不需要在hosts文件加添加域名映射&#xff08;也不需要定义一系列域名&#xff09;&#xff0c;通过url路径来将请求转发到不同的Web资源 如&…...

AISMM模型实施避坑手册(含12个真实客户L3→L4跃迁失败复盘):缺失这1项评估,投入百万DevOps将归零

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AISMM模型与云原生成熟度 AISMM&#xff08;AI-Savvy Modernization Maturity&#xff09;模型是面向AI增强型云原生演进的五阶段评估框架&#xff0c;聚焦组织在智能服务化、自动化治理与弹性架构协同…...

GetQzonehistory:一站式自动化QQ空间历史数据备份解决方案

GetQzonehistory&#xff1a;一站式自动化QQ空间历史数据备份解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字记忆日益重要的今天&#xff0c;如何安全高效地备份个人社交…...

跨平台智能消息机器人:基于大语言模型的多IM自动化实践

1. 项目概述与核心价值最近在折腾自动化工具时&#xff0c;发现了一个挺有意思的项目&#xff0c;叫“kunkeji/chatGPT_auto_msg_multiPlat”。光看名字&#xff0c;你大概能猜到它想干什么&#xff1a;一个能自动发送消息的机器人&#xff0c;并且支持多个平台&#xff0c;背后…...

去中心化数据同步:构建自主可控的Any-Sync系统

1. 项目概述&#xff1a;从“同步一切”到“掌控一切”的进化在数字生活的日常里&#xff0c;我们每个人都被困在无数个“信息孤岛”中。工作文档躺在公司的云盘&#xff0c;个人照片塞满了手机相册&#xff0c;读书笔记散落在不同的App&#xff0c;而浏览器书签则随着设备切换…...

明日方舟全自动小助手:解放双手的终极效率工具

明日方舟全自动小助手&#xff1a;解放双手的终极效率工具 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode.co…...

构建AI代理纵深防御体系:从虚拟化隔离到网络策略实战

1. 项目概述&#xff1a;为自主AI代理构建纵深防御体系如果你和我一样&#xff0c;对运行在个人电脑上的AI代理&#xff08;Agent&#xff09;既充满期待又心怀警惕&#xff0c;那么你肯定理解那种矛盾感。一方面&#xff0c;我们希望AI能成为得力的数字助手&#xff0c;帮我们…...

Skeet到SLV:全栈框架进化与边缘计算实践

1. 项目概述&#xff1a;从Skeet到SLV&#xff0c;一个全栈框架的进化之路 如果你和我一样&#xff0c;在过去几年里一直在全栈开发领域摸爬滚打&#xff0c;那你一定对技术栈的快速迭代和“选择困难症”深有体会。从React到Next.js&#xff0c;从Firebase到各种云服务&#x…...

构建AI驱动的无人值守开发流水线:任务编排与智能监控实践

1. 项目概述&#xff1a;告别“一次性”AI助手&#xff0c;实现无人值守的自动化开发流水线如果你和我一样&#xff0c;尝试过用Claude Code、Cursor这类AI编程助手来推进一个需要多步骤、长时间运行的项目&#xff0c;那你一定经历过这种场景&#xff1a;你给AI布置了一个任务…...

怎样用Stretchly打造你的专属健康办公节奏:5分钟快速上手指南

怎样用Stretchly打造你的专属健康办公节奏&#xff1a;5分钟快速上手指南 【免费下载链接】stretchly The break time reminder app 项目地址: https://gitcode.com/gh_mirrors/st/stretchly 在数字办公时代&#xff0c;健康屏幕时间管理已成为现代职场人士的必备技能。…...

7+ Taskbar Tweaker疑难杂症终极指南:从症状到根除的完整解决方案

7 Taskbar Tweaker疑难杂症终极指南&#xff1a;从症状到根除的完整解决方案 【免费下载链接】7-Taskbar-Tweaker A Windows taskbar customization tool for Windows 7, Windows 8, and Windows 10 项目地址: https://gitcode.com/gh_mirrors/7t/7-Taskbar-Tweaker 7 T…...