算法

系统设计 | 限流算法及其周边

概述 限流,其基础含义为对流量进行限制,其既包括在速率上的限制,又包括在资源上的限制,这里主要讨论的是对速率进行限制。 本文分为三部分,第一部分中我们将讨论在做限流前必须要弄清的问题: 为什么要去做限流 限流的具体含义和指标 第二部分将具体探讨互联网上流行的限流算法;并在第三部分中学习它们在常用的限 ... »

Unity实现A*寻路算法学习2.0

#二叉树存储路径节点 1.0中虽然实现了寻路的算法,但是使用List<>来保存节点性能并不够强 ##寻路算法学习1.0在这里:https://www.cnblogs.com/AlphaIcarus/p/16185843.html 更好的方法是使用堆(或者叫树)来代替列表存储节点 注意:这里使用数组来 ... »

AlphaIcarus Unity

数据结构与算法知识点总结(5)查找树

1.基础查找 符号表是一种典型的ADT,它提供了操作键值对的方法: put(插入、insert)、search、delete操作,这一节将会给出两种初级的符号表: 无序链表中的顺序查找、基于有序数组二分查找的有序符号表。 在某些实现中我们认为保持键的有序性并大大扩展它的API是很有用。例如键是时间, ... »

有关动态规划

【以下内容仅为本人在学习中的所感所想,本人水平有限目前尚处学习阶段,如有错误及不妥之处还请各位大佬指正,请谅解,谢谢!】 引言 通过目前参与的各类比赛和网友的面经,不难发现动态规划一直是各类竞赛和面试中的高频和难点,但其最优化的思想在生产生活中的各大领域都具有许多作用。撰写这篇随笔的目的既是为了自我 ... »

Unity实现A*寻路算法学习1.0

#一、A*寻路算法的原理 如果现在地图上存在两点A、B,这里设A为起点,B为目标点(终点) 这里为每一个地图节点定义了三个值 gCost:距离起点的Cost(距离) hCost:距离目标点的Cost(距离) fCost:gCost和gCost之和。 这里的Cost可以采用直线距离,也可以采用曼哈顿距 ... »

AlphaIcarus Unity

Python 查找算法_众里寻他千百度,蓦然回首那人却在灯火阑珊处(线性、二分,分块、插值查找算法)

查找算法是用来检索序列数据(群体)中是否存在给定的数据(关键字),常用查找算法有: 线性查找: 线性查找也称为顺序查找,用于在无序数列中查找。 二分查找: 二分查找也称为折半查找,其算法用于有序数列。 插值查找: 插值查找是对二分查找算法的改进。 分块查找: 又称为索引顺序查找,它是线性查找的改进版 ... »

数据结构笔记——查找

好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star ⭐⭐⭐⭐⭐转载请注明出处:https://blog.csdn.net/weixin_43461520/article/details/124377079 数据 ... »

跟我读CVPR 2022论文:基于场景文字知识挖掘的细粒度图像识别算法

摘要:本文通过场景文字从人类知识库(Wikipedia)中挖掘其背后丰富的上下文语义信息,并结合视觉信息来共同推理图像内容。 本文分享自华为云社区《[CVPR 2022] 基于场景文字知识挖掘的细粒度图像识别算法》,作者: 谷雨润一麦。 本文简要介绍CVPR 2022录用的论文“Knowledge ... »

读书日的书单

一 前言 由于看过一篇IT工程师的博客,写道技术人员是脑力劳动者,而脑力劳动者关键能力是深度工作的能力。在长时间无干扰的状态下,批量解决困难却重要的智力工作。 由此可得到深度工作:一是长时间的专注(耐心)二是智力工作,需要独立思考(专研) 二 书籍内容 在看过博客后,我便从网上下载了这一本电子书,看 ... »

最详细的背包问题!!!

我们知道,背包问题是一种非常经典的动态规划问题,本文总结了几种类型的背包问题并进行了分析: 根据百度百科,我们可以看到背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总 ... »

买卖股票的最佳时机系列问题

作者:Grey 原文地址:买卖股票的最佳时机系列问题 LeetCode 121. 买卖股票的最佳时机 主要思路:因为只有一股可以交易,所以我们可以枚举必须以i位置作为卖出时机的情况下,得到的最大收益是多少。如果我们得到每个i位置的最大收益,那么最大收益必是所有位置的最大收益的最大值。 使用两个变量: ... »

数组模拟队列进阶版本——环形队列(真正意义上的排队)

数组模拟环形队列(真正意义上的排队) 昨天我们做了数组模拟队列的基本情景。可以进行排队和取出数据(最早的人离开队列),但是我们发现,取出的地方不能重复利用。让我们的队列成为了一次性队列。今天我们来看如何将我们的队列改进称数组模拟环形队列。实现已释放位置的重复利用 基本原理: 要知道我们实现队列的基本 ... »

排序算法(3)

快速排序 快速排序可能是应用最广泛的算法了。快排流行的原因在于实现简单、并且适用于各种不同的输入数据,因此在一般的应用中比其他排序算法都要快很多。快排的优点在于其是原地排序,不向归并至少需要建立一个和排序数组大小一样的数组,并且快排的时间复杂度和NlgN成正比 基本思想 快速排序是一种分治的排序算法 ... »

yenil

减治思想——二分查找详细总结

减治思想——二分查找详细总结 二分查找应用于有序数组,可以在以$O(\log(n))$时间复杂度进行查找。其思想在于利用数组的有序性直接排除掉一些元素,这也是进行“减治”的地方。二分查找思想看起来简单,但是其边界条件其实很容易弄混,下面就对各种情况的二分查找(基础情形、左边界二分查找、右边界二分查找 ... »

DFA算法之内容敏感词过滤

DFA 算法是通过提前构造出一个 树状查找结构,之后根据输入在该树状结构中就可以进行非常高效的查找。 设我们有一个敏感词库,词酷中的词汇为:我爱你我爱他我爱她我爱你呀我爱他呀我爱她呀我爱她啊 那么就可以构造出这样的树状结构: 设玩家输入的字符串为:白菊我爱你呀哈哈哈 我们遍历玩家输入的字符串 str ... »

fdzwdt

Python 一网打尽<排序算法>之堆排序算法中的树

本文从树数据结构说到二叉堆数据结构,再使用二叉堆的有序性对无序数列排序。 1. 树 树是最基本的数据结构,可以用树映射现实世界中一对多的群体关系。如公司的组织结构、网页中标签之间的关系、操作系统中文件与目录结构……都可以用树结构描述。 树是由结点以及结点之间的关系所构成的集合。关于树结构的更多概念不 ... »

guo-ke

一种O(n)时间复杂度的计数排序算法和Top N热词算法

排序算法是研究非常广泛且超级经典的算法,主流排序算法的时间复杂度基本都在O(nlogn)。 今天就介绍一种以hash表为基础的,时间复杂度能够达到O(n)的排序算法——计数排序; 同时基于它的思想,完成时间复杂度同样为O(n)的求Top N热词的小功能应用。 算法思想 01 n个数据需要排序,就把数 ... »

zsh-notes

基于深度学习的车辆检测系统(MATLAB代码,含GUI界面)

摘要:当前深度学习在目标检测领域的影响日益显著,本文主要基于深度学习的目标检测算法实现车辆检测,为大家介绍如何利用MATLAB设计一个车辆检测系统的软件,通过自行搭建YOLO网络并利用自定义的数据集进行训练、验证模型,最终实现系统可选取图片或视频进行检测、标注,以及结果的实时显示和保存。其中,GUI... ... »

联邦平均算法(Federated Averaging Algorithm,FedAvg)

设一共有$K$个客户机, 中心服务器初始化模型参数,执行若干轮(round),每轮选取至少1个至多$K$个客户机参与训练,接下来每个被选中的客户机同时在自己的本地根据服务器下发的本轮($t$轮)模型$w_t$用自己的数据训练自己的模型$w^k_{t+1}$,上传回服务器。服务器将收集来的各客户机的模 ... »