算法 随想录 柠檬水 队列

【基础算法】排序算法 —— 选择排序

一、算法原理 选择排序将数组分为已排序区间和未排序区间,每次选择未排序区间的最小元素,将它放到已排序区间末尾。一次选择会让一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序。 示例:使用选择排序对数组 arr = [4,5,6,3,2,1] 从小到大排序。 第1次选择: 第2次选 ......
算法 基础

【基础算法】排序算法 —— 冒泡排序

一、算法原理 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,如果不满足大小关系要求,就进行交换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序。 示例:使用冒泡排序对数组 arr = [4,5,6,3,2,1] 从小到大排序。 第1 ......
算法 基础

稳定婚姻问题(Gale-Shapley算法)

前言 今天 duck、香饽饽老板和彬彬一起出了个模拟赛,赛时T2想到了跟正解很接近的做法,但最后还是打挂了then喜提0pts,后面 duck 讲题的时候才知道是稳定婚姻板题。 看完证明之后觉得很妙,遂开坑。 只是简单整理,图一乐子吧算是。 说是稳定婚姻问题,但其实我觉得更合适的叫法是属性稳定分配问 ......
Gale-Shapley 算法 婚姻 Shapley 问题

【基础算法】排序算法

一、排序算法简介 排序是对批量数据按照一定的顺序进行排列的操作。 1.1 学习排序算法的要点 算法原理、代码实现、评价算法优劣。 1.2 评价排序算法的优劣 排序算法的优劣可以从以下 3 个方面进行评价: 时间性能:最好、最坏、平均时间复杂度; 内存占用:是否原地排序,原地排序算法,特指空间复杂度是 ......
算法 基础

Celery将任务分发到不同的队列,交给不同的Worker处理

https://docs.celeryq.dev/en/stable/userguide/routing.html#routing-tasks https://blog.csdn.net/wanglei_storage/article/details/130029916 https://www.cn ......
队列 任务 Celery Worker

视频融合/监控汇聚平台EasyCVR人形检测算法应用汇总

安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智 ......
人形 算法 EasyCVR 平台 视频

排序算法

在线验证算法 排序数组 算法实现 1. 快排 思路 树的前序遍历。 每次选取一个数作基准值,将小于基准值的数放在左边,大于基准值的数放在右边。遍历左子树及右子树,直到只有1个数为止。 实现 class QuickSort { public static void sort(int[] nums) { ......
算法

归并排序算法详解

算法介绍 引用百度百科的介绍。 归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有 ......
算法

算法:线段树

算法:线段树 哦吼!终于来学线段树啦~~ 拖了好久都没有敢学,主要是基础知识点不熟,代码能力太弱。但是现在已经是时候了。 来看: 线段树(Segment Tree)几乎是算法竞赛最常用的数据结构了,它主要用于维护 区间信息 (要求满足结合律)。与树状数组相比,它可以实现 \(O(log⁡\ n)\) ......
线段 算法

文心一言 VS 讯飞星火 VS chatgpt (105)-- 算法导论10.1 3题

三、用go语言,仿照图 10-2,画图表示依次执行操作 ENQUEUE(Q,4)、ENQUEUE(Q,1)、ENQUEUE(Q,3)、DEQUEUE(Q)、ENQUEUE(Q,8)和 DEQUEUE(Q)每一步的结果,队列初始为空,存储于数组 Q[1..6]中。 文心一言: 在这个问题中,我们尝试使 ......
文心 导论 算法 chatgpt VS

记一种无需形式幂级数求逆的多点求值算法

仅作为个人理解之用 来自 https://judge.yosupo.jp/submission/140699 首先product tree部分不变 我们考虑如何不使用形式幂级数求逆 注意到 如果对dft的点值求逆实际上是在对 x^lim-1 取模的意义下 实际上在这个意义下也是可做的 首先判掉所求点 ......
幂级数 算法 形式

KMP算法

KMP算法是用来进行字符串匹配的算法。 核心概念 1、s[ ]是模式串,即比较长的字符串。 2、p[ ]是模板串,即比较短的字符串。用P去匹配S。 3、“非平凡前缀”:指除了最后一个字符以外,一个字符串的全部从头部字符到末尾字符的前一个的所有组合。 4、“非平凡后缀”:指除了第一个字符以外,一个字符 ......
算法 KMP

视频汇聚/监控汇聚平台EasyCVR智能分析系统人脸检测算法的应用与特点

AI人脸检测算法具备提取人脸和服装特征的能力,并将其分类为有用的属性,如性别、年龄和服装颜色等。通过搜索这些丰富的属性信息,我们可以方便地找到目标人物,例如通过人脸图像进行相似图像搜索或实施人脸布控等操作。 安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多 ......
人脸 算法 特点 EasyCVR 智能

视频汇聚/视频融合平台EasyCVR智慧安防AI算法方案,解放人力高效监管

安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智 ......
视频 算法 智慧 EasyCVR 人力

[数据结构和算法] 堆/优先队列的实现

预备知识: 完全二叉树可以用数组表示: 从下标0开始存储数据:左子节点 = 2 * 父节点 + 1,右子节点 = 2 * 父节点 + 2; 从下标1开始存储数据:左子结点 = 2 * 父节点,右子节点= 2 * 父节点 + 1; 堆: 大根堆:父节点的值大于等于左右子节点的值; 小根堆:父节点的值小 ......
数据结构 队列 算法 结构 数据

【数据结构】2.栈和队列

1.栈 1.1栈的抽象父类 #pragma once template<class T> class Stack { public: // 析构函数 virtual ~Stack() {} // 栈是否为空 virtual bool empty() const = 0; // 栈的大小 virtua ......
数据结构 队列 结构 数据

FreeRTOS 原理 --- 队列

队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(固定长度消息传递)。 队列的优点: 不同任务之间的读写队列操作是互斥的(通过关中断实现) 读写队列由阻塞唤醒机制,阻塞的任务不抢占CPU资源(比如读队列,发现队列空,阻塞当前任务,除非其他任务有写队列,否则当前任务不再占用CPU资源) 队列 ......
队列 FreeRTOS 原理

文心一言 VS 讯飞星火 VS chatgpt (104)-- 算法导论10.1 2题

二、用go语言,说明如何在一个数组 A[1..n]中实现两个栈,使得当两个栈的元素个数之和不为 n 时,两者都不会发生上溢。要求 PUSH 和 POP 操作的运行时间为 O(1)。 文心一言: 在这个问题中,我们要在一个数组 A[1..n] 中实现两个栈,使得当两个栈的元素个数之和不为 n 时,两者 ......
文心 导论 算法 chatgpt VS

雷达到达角估计算法3DFFT,DBF,MUSIC,Capon的原理、对比、各自的优势

雷达到达角估计算法3DFFT,DBF,MUSIC,Capon的原理、对比、各自的优势 雷达到达角估计是雷达信号处理中的一个重要问题,旨在确定来自目标的雷达信号的到达角度。雷达到达角估计算法可以分为时域方法和频域方法两种类型。其中,频域方法可以进一步分为基于阵列信号处理的方法和基于普通雷达信号处理的方 ......
算法 原理 优势 3DFFT Capon

[算法]双指针的种种应用

本文使用C语言 Q:为什么要用双指针? A:因为 通过使用双指针可以使算法的时间复杂度降低(或者降低遍历次数),有时也能降低空间复杂度 分类 根据双指针的用法,可分为前后双指针,头尾双指针,快慢双指针..... 前后双指针 应用一 删除排序数组中的重复项 要求:原地删除,并返回新数组的长度,不需要考 ......
指针 算法

[算法]按位异或^的种种玩法

本文使用C语言 什么是按位异或^ 首先将不同数制的数写成二进制,例如9->0b1001. 然后最末位对齐,依次按位异或. 规则:0 ^ 0= 0 ; 1 ^ 1 = 0; 1 ^ 0 = 1 推论:任意整数x,都有0^x = x ; x ^ x = 0\ 来看看应用 寻找一个单身狗数 像[1,3,2 ......
玩法 算法

点云配准算法-旋转矩阵估计-Kabsch-Umeyama algorithm

Kabsch-Umeyama algorithm 参考文献: https://www.wikiwand.com/en/Kabsch_algorithm 面向点云配准,最小化两点集均方根误差(RMSD, root mean squared deviation)来计算最佳旋转矩阵。 注:该算法只能计算旋 ......

CUDA矩阵乘法算法分析

CUDA矩阵乘法算法分析 矩阵乘法是科学计算的基本构建块。此外,矩阵乘法的算法模式具有代表性。许多其他算法与矩阵乘法共享类似的优化技术。因此,矩阵乘法是学习并行编程中最重要的例子之一。 CUDA 矩阵乘法的源代码可在 gitlab 上找到。建议使用 git 获取源代码,它允许提取可能提供的任何更新, ......
乘法 矩阵 算法 CUDA

实现在Java环境中使用SM2加密算法

在Java环境中使用SM2加密算法,主要涉及两个步骤:引入SM2相关的库并使用其公开的API进行开发,和实际使用SM2加密、解密等功能。 引入并使用SM2相关库 我们可以选择使用BouncyCastle库,它提供了广泛的加密和哈希函数,包括SM2。首先,要在项目中引用BouncyCastle库,这可 ......
算法 环境 Java SM2 SM

算法训练day23 LeetCode669.108.538.

算法训练day23 LeetCode669.108.538. 669.修剪二叉搜索树 题目 669. 修剪二叉搜索树 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) 递归 不能单纯地由根节点的值直接删除单值,需要继续判断子节点是否符合条件 class Sol ......
算法 LeetCode day 108 669

文心一言 VS 讯飞星火 VS chatgpt (103)-- 算法导论10.1 1题

一、用go语言,仿照图 10-1,画图表示依次执行操作 PUSH(S,4)、PUSH(S,1)、PUSH(S,3)、POP(S)、PUSH(S,8)和 POP(S)每一步的结果,栈 S初始为空,存储于数组 S[1..6]中。 文心一言: 图 10-1 展示了在执行一系列栈操作后栈的状态。我会用文字描 ......
文心 导论 算法 chatgpt VS

C++常见算法&数据结构模版

各种常见算法 & 数据结构模板 1. 最长不下降子序列(LIS) 1.1 \(O(n^2)\) 做法 点击查看代码 for (int i = 1;i <= n;i++) { cin >> a[i]; dp[i] = 1; } for (int i = 1;i <= n;i++) { for (int ......
数据结构 算法 模版 常见 结构

KMP字符串匹配算法

挑战最通俗的KMP算法讲解 什么是 \(KMP\) KMP是一种用于模式串匹配问题的算法。 给出一个文本串和模式串,查询模式串在文本串中的(出现次数、出现位置等等)的问题称为“模式串匹配问题”。 KMP算法的本质是:针对模式串构建一个特定的数组,用于在匹配失败时减少后续匹配过程中的无用比较,可以将时 ......
字符串 算法 字符 KMP

视频融合/监控汇聚平台EasyCVR助力AI算法智能防溺水,实现水域监管

防溺水已经成为青少年安全教育的重要内容,同时也是社会各界共同承担的安全管理责任。特别是在夏季,随着天气逐渐转热,溺水事故也进入了危险期、易发期和高发期。传统的预防和管理方法主要通过日常宣传演讲和人工巡逻来提醒人们溺水的危害,但存在一些问题: 1)缺乏有效的安全预警设施:当人员接近危险区域时,缺乏警示 ......
水域 算法 EasyCVR 智能 平台

线段裁剪:Cohen-Sutherland算法

目录裁剪算法Cohen-Sutherland线段裁剪算法基本思想具体步骤计算分析程序代码 裁剪算法 计算机内部存储的图形数据量通常较大,而屏幕只显示其中一部分,因此需要确定哪些部分在显示区域内,哪些在显示区域外。这个过程称为裁剪(clipping)。裁剪是二维观察(三维观察)的重要部分,参见计算机图 ......