几何 算法

分而治之算法

分而治之算法(Divide and Conquer Algorithm)是一种基于递归的算法思想,将问题划分为若干个子问题,逐个解决子问题并将它们合并成原问题的解。 分而治之算法通常包括以下步骤: 分解:将原问题分解为若干个子问题,这些子问题的结构与原问题相同或类似,但规模更小。 解决:递归地解决每 ......
算法

Dijkstra的算法

Dijkstra算法是一种单源最短路径算法,用于在带有非负权重的图中,找到一个源节点到所有其他节点的最短路径。该算法的基本思想是通过贪心的方式逐步扩展当前已知的最短路径集合,直到找到源节点到所有其他节点的最短路径。 Dijkstra算法的具体步骤如下: 初始化:设置源节点到自己的距离为0,将源节点标 ......
算法 Dijkstra

兔子产子问题(递归算法)

#include<iostream>using namespace std;int f(int n){ if (n == 1 || n == 2) return 1; return f(n - 1) + f(n - 2);}int main(){ int i; for (i = 0; i < 30; ......
算法 兔子 问题

《算法竞赛进阶指南》 第五章 237. 程序自动分析

地址 https://www.acwing.com/problem/content/239/ 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。 考虑一个约束满足问题的简化版本:假设 x1,x2,x3,… 代表程序中出现的变量, 给定 n 个形如 xi=xj 或 xi≠xj 的变 ......
算法 指南 程序 237

四种语言刷算法之对链表进行插入排序

力扣147. 对链表进行插入排序 1、C /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* inserti ......
算法 语言

十大排序算法

一、冒泡排序 public class BubbleSort implements IArraySort { @Override public int[] sort(int[] sourceArray) throws Exception { // 对 arr 进行拷贝,不改变参数内容 int[] a ......
算法

贪心算法基础及leetcode例题

#理论 **本质:**找到每个阶段的局部最优,然后去推导得到全局最优 **两个极端:**常识&&很难: 很多同学通过了贪心的题目,但都不知道自己用了贪心算法,因为贪心有时候就是常识性的推导,所以会认为本应该就这么做! 套路: 贪心没有套路,说白了就是常识性推导加上举反例 做题的时候,只要想清楚 局部 ......
例题 算法 leetcode 基础

【ACM算法竞赛日常训练】DAY16【奇♂妙拆分】【区区区间间间】【小AA的数列】数学 | 位运算 | 前缀和

DAY16共3题: 奇♂妙拆分(简单数学) 区区区间间间(单调栈) 小AA的数列(位运算dp) 🎈 作者:Eriktse 🎈 简介:19岁,211计算机在读,现役ACM银牌选手🏆力争以通俗易懂的方式讲解算法!❤️欢迎关注我,一起交流C++/Python算法。(优质好文持续更新中……)🚀 🎈 ......
数列 前缀 区间 算法 数学

AES算法 前端JavaScript加密 后端Java解密

CryptoJS https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js 中文文档 https://cryptojs.gitbook.io/docs/ var AES = function () { const ......
前端 算法 JavaScript Java AES

微信医保授权签名 PHP算法

最近在开发微信的时候、遇到了需要 秘钥签名的地方; 官方只提供了JAVA代码、让PHP的我一头雾水,踩过无数坑后终于签名通过、直接上签名函数; public function keyJiaMi($partnerSecret,$partnerId,$timestamp){ return hash_hm ......
医保 算法 PHP

2023-04-19 算法面试中常见的递归和回溯问题

递归和回溯 0 递归与回溯的异同 参考文章 递归与回溯 递归与回溯的理解 回溯和递归区别 比较 | | 递归 | 回溯 | | | | | | 定义 | 为了描述问题的某一状态,必须用到该状态的上一状态,而描述上一状态,又必须用到上一状态的上一状态……这种用自已来定义自己的方法,称为递归定义。形式如 ......
算法 常见 问题 2023 04

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。

#目录 一、基础知识 - 二分法解题思路 - 数组中删除的思路 二、题目一:704.二分查找 三、题目二:27.移除元素 #一、基础知识 1.二分法解题思路 要求数组必须是有序排列,仅需要根据题目的条件去确定搜索区间。 第一个关键点:区间的取值。 一般有左闭右闭,左闭右开,左开右闭三种,这个的选择不 ......
随想录 训练营 随想 算法 元素

选举算法汇总(redis、zookeeper、kafka)

1.redis 哨兵(sentinel)模式 背景:哨兵模式,节点类型包括master、slave、和sentinel,master-slave节点和主从模式的作用是相同的;多了sentinel节点提高服务的可用性和稳定性 触发原因:master(简称A节点)节点异常,当一个sentinel发现A节 ......
算法 zookeeper redis kafka

m基于ID3决策树算法的能量管理系统matlab仿真

1.算法描述 ID3算法是一种贪心算法,用来构造决策树。ID3算法起源于概念学习系统(CLS),以信息熵的下降速度为选取测试属性的标准,即在每个节点选取还尚未被用来划分的具有最高信息增益的属性作为划分标准,然后继续这个过程,直到生成的决策树能完美分类训练样例。 ID3算法最早是由罗斯昆(J. Ros ......
算法 能量 管理系统 matlab 系统

扎实打牢数据结构算法根基,从此不怕算法面试系列之008 week01 02-08 通过常见算法,对常见的时间复杂度做梳理

#1、线性查找法的复杂度 public static <E> int search(E [] data,E target){ for (int i = 0; i < data.length; i++) if (data[i].equals(target)) return i; return -1; ......
算法 常见 复杂度 数据结构 根基

Kraken序列分类算法

当然可以!kraken是一种流行的高效序列分类器,使用 k-mer (k个连续碱基组成的子串)方法对不同分类下的序列进行分类。以下是kraken序列分类算法简要说明: 数据预处理 首先,kraken会将参考数据库中的序列分割为固定长度的 k-mers,这些k-mer会被记录到一个查询表中。 样品序列 ......
序列 算法 Kraken

02 绘制简单几何图形

图形渲染管线与绘制简单几何图形 1. 图形渲染管线回顾 简要回顾一下GAMES101中闫老师提到的图形渲染管线。 图形渲染管线可以理解为,将原始的3维图形数据经过一系列变化处理后,转换为2维坐标,再将2维坐标转换为实际的屏幕像素的过程。 这一过程可以简单的描述为: 首先我们要做的是输入一系列三维空间 ......
几何 图形 02

替换算法与写策略

一.基础认知 1.个人理解 替换算法是用于管理高速缓存(Cache)中数据的一种策略,当高速缓存已满并需要为新的数据腾出空间时,替换算法会决定哪些数据应该被从高速缓存中替换出去。 2.基础认知 首先,我们需要知道计算机的组成原理,在其中计算机可以划分为cache-主存和主存-辅存两种层级结构,而平时 ......
算法 策略

数据结构与算法学习23

学习要点 一、预习页码:369-396(两次课) 二、预习要求 1、排序的基本概念。排序,排序稳定性(关键字相同,相对位置不变),内排序(排序在内存中),排序算法性能。 2、插入排序。直接插入排序,折半插入排序,希尔排序排序方法,排序算法,算法分析(包括关键字比较和元素移动次数的分析)。其中折半查找 ......
数据结构 算法 结构 数据

数据结构与算法学习19

学习要点 (如有运动会推迟到下一周11.3日) 一、预习页码:252-270 二、预习内容 1、图的相关概念。(自学) 2、邻接矩阵的存储方法。包括无向图(带权或不带权),有向图(带权或不带权)的存储。注意,先存储节点,再根据节点的顺序存储邻接矩阵,对应一个N*N的方阵。如果无权存0,有权存权值。( ......
数据结构 算法 结构 数据

数据结构与算法学习20

学习要点 一、预习页码:重点预习287-297,自学为主298-304 二、预习内容 1、最短路径的概念。 2、Dijkstra算法的设计思想,执行过程,算法设计,算法效率。 3、Floyd算法的设计思想,执行过程,算法设计,算法效率。 4、Dijkstra算法和Floyd算法相似和不同之处。 5、 ......
数据结构 算法 结构 数据

数据结构与算法学习21

学习要点 一、预习页码:314-331 二、预习内容 1、查找的基本概念。包括内查找,外查找,动态查找,静态查找。(自学为主) 2、查找的评价性能指标。平均查找长度ASL,包括ASL成功和ASL不成功两个方面。(自学为主) 3、顺序查找。过程,算法自学,重点学习顺序查找中ASL成功和ASL不成功的分 ......
数据结构 算法 结构 数据

数据结构与算法学习22

学习要点 一,预习页码331-337,348-353 二,预习内容 1.平衡二叉树的基本概念,平衡因子的概念及计算,平衡二叉树的判定,平衡二叉树和二叉排序树的相同点和不同点。(自学) 2.平衡二叉树插入结点的过程,注意基于二叉排序树插入结点的方法,而且时时关注树是否平衡。如果不平衡就调整。 3.平衡 ......
数据结构 算法 结构 数据

数据结构与算法学习07

学习要点 三、任务布置:9.10日至9.21日数据结构实验安排如下: (1)登录头歌实验平台,注册,并加入班级。 (2)学会使用头歌平台进行实验。 (3)完成头歌实验平台的作业,包括单链表和双链表实验。 备注:本次实验时间长,请大家一定要利用好时间提升自己的编程能力,个人建议每位同学的在线编程时间每 ......
数据结构 算法 结构 数据

数据结构与算法学习08

学习要点 1、预习页码:81-86 2、复习内容 (1)能独立完成顺序栈的栈空、栈满、进栈和出栈的核心语句的书写。(重点) (2)能独立阅读顺序栈的6个常用功能函数。能发现顺序栈和线性表的不同,能独立运用栈实现具体问题。思考什么样的问题可以用栈来实现? 3、预习内容 (1)掌握链栈(单链表实现)的栈 ......
数据结构 算法 结构 数据

数据结构与算法学习09

学习要点 一、预习页码P93-94,97-107 二、预习内容 1、迷宫路径求解问题。(选学)在学习过程中了解栈在迷宫路径的作用(回溯),如何通过栈存储迷宫模块,如果通过栈中的信息找寻到迷宫路径。 2、队列的基本概念。(队首、队尾、进队、出队),队列的特点先进先出。 3、顺序队列的基本操作。(有两个 ......
数据结构 算法 结构 数据

数据结构与算法学习10

学习要点 一、预习页码:P104-111,126-133 二、预习内容 1、掌握链队(单链表实现方式)的基本结构。同时掌握链队中空、满、进、出四个状态。(重点)能独立完成链队的基本运算算法的阅读和编写。 2、掌握其他链队的设定。教材p106--例3.8. 3、了解如何使用队列完成迷宫问题最短路径的查 ......
数据结构 算法 结构 数据

数据结构与算法学习11

学习要点 一、预习页码:P128-134(此部分不会的话可以不看),140-144,162-168 二、预习内容 1、能理解KMP算法和BF算法的不同,KMP消除了主串指针的回溯,在不匹配的时候模式串指针如何移动。 2、重点掌握KMP算法中next[j]和改进的KMP算法中nextval[j]的分析 ......
数据结构 算法 结构 数据

数据结构与算法学习12

学习要点 一、预习页码:165-173 二、预习内容 1、复习数组的存储过程。一维数组和二维数组存储过程以及三维数组的存储过程,掌握多维数组以行优先存放和列优先存放的过程。 2、特殊矩阵(方阵)的压缩存储。为什么提出压缩存储的想法?(重点+难点) (1)NN的对称矩阵在压缩存储过程中,需要存储多少个 ......
数据结构 算法 结构 数据

数据结构与算法学习13

学习要点 一、预习页码:172-177,185-192 二、预习内容 1、理解稀疏矩阵的十字链表表示法中,存储的节点过程,头结点的设定。能理解数据节点结构和头结点结构,能通过图6.8头结点hm找寻到数据节点。 2、掌握广义表的基本定义。空表,原子,子表,表头、表尾的计算,以及广义表对应的图形表示。 ......
数据结构 算法 结构 数据