算法

排序算法

首先定义一个交换数组元素的方法,对于给定数组int arr[], 交换i位置跟j位置的元素可以用一下方法实现 void Swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } 选择排序: ......
算法

opencv-python 4.16. 基于GrabCut算法的交互式前景提取

理论 GrabCut算法由英国剑桥微软研究院的Carsten Rother,Vladimir Kolmogorov和Andrew Blake设计。在他们的论文:"GrabCut": interactive foreground extraction using iterated graph cuts ......

算法基础2

算法基础2.0 @ ## 1.结构体 结构体基本写法: struct node{ int b; char c; string d long long e; }a[1000]; 排序方案: bool cmp(node x,node y){ if(x.k!=y.k) return x.k<y.k;//k ......
算法 基础

算法与思想——二分查找与二分答案

算法与思想——二分查找与二分答案 @ 一、二分算法 log2n速度 1.二分前提:有序的数列,,整体成升序或降序,可以中间有相等的数值。 2.二分写法:定义寻找的头和尾,以及中间的量,不断迭代找出最终答案; 代码如下 int Binary_Search(int a[], int n, int key ......
算法 答案 思想

关于滑动窗口算法的应用场景

####算法原理 滑动窗口算法是一种基于双指针(又称滑动窗口)的算法,是一种常用的数据处理算法,通常用于解决数组或字符串中的子数组或子串问题。 滑动窗口算法的基本思想是使用两个指针left和right来定义一个窗口,窗口内包含满足特定条件的元素子序列,然后不断移动指针left和right来滑动窗口, ......
算法 场景

关于滑动窗口算法的应用场景

####算法原理 滑动窗口算法是一种基于双指针(又称滑动窗口)的算法,是一种常用的数据处理算法,通常用于解决数组或字符串中的子数组或子串问题。 滑动窗口算法的基本思想是使用两个指针left和right来定义一个窗口,窗口内包含满足特定条件的元素子序列,然后不断移动指针left和right来滑动窗口, ......
算法 场景

【贪心算法】NO134 加油站

134. 加油站 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和 cost ,如果你可以绕 ......
算法 加油站 134 NO

直线光栅化-Bresenham算法

直线光栅化-Bresenham算法 设直线方程为 $y=kx+b$ ,其中 $k = \Delta y/\Delta x$ 。 当 $0<k<1$ 时,从 $x$ 轴开始取样。已知 $P_{k}(x_{k},y_{k})$,那么 $P_{k+1}(x_{k+1},y_{k+1})$ 坐标值等于 $( ......
光栅 算法 直线 Bresenham

2023-04-09 有向图及相关算法

有向图及相关算法 1 有向图的实现 有向图的的应用场景 社交网络中的关注 互联网连接 程序模块的引用 任务调度 学习计划 食物链 论文引用 无向图是特殊的有向图,即每条边都是双向的 改进Graph和WeightedGraph类使之支持有向图 Graph类的改动 WeightedGraph类的改动 2 ......
有向图 算法 2023 04 09

自适应辛普森算法

名字很高大上,事实上是计算机与数学深度结合后诞生的一种算法。 求积分,我们知道一定存在一个函数,保证 事实上,我们并不需要其中微不足道的那部分,只需保证我们所需的精度即可 #include<bits/stdc++.h> #define int long double using namespace ......
算法

几种常用的Java 算法

package jsh.mg.msg.service.msg.test;import java.util.Arrays;import static java.util.Arrays.binarySearch;/** * * 几种常用的Java 算法 */public class TestClass ......
算法 常用 Java

AES算法

(一)设计思路(可包含部分关键代码说明) /*通过密钥计算规则计算余下数组 * *1.如果i不是4的倍数,那么第i列由如下等式确定: *W[i]=W[i-4]⨁W[i-1] *2.如果i是4的倍数,那么第i列由如下等式确定: *W[i]=W[i-4]⨁T(W[i-1]) *其中,T是一个有点复杂的函 ......
算法 AES

推荐算法在商城系统实践

一、简介 本文博主给大家讲解如何在自己开源的电商项目newbee-mall-pro中应用协同过滤算法来达到给用户更好的购物体验效果。 newbee-mall-pro项目地址: 源码地址:https://github.com/wayn111/newbee-mall-pro 在线地址:http://12 ......
算法 商城 系统

算法思想

$\mathcal{Part}$ 1. 前提提要 注意:本文为提高组难度的算法思想,主要为前缀和,差分等优化 因为是思想,讲的会比较玄乎,能理解就好 $\mathcal{Part}$ 2. 双指针 双指针通常解决区间问题 步骤是,确定一个右节点或左节点作为一个参考点,通常取右节点,记为 $j$ 我们 ......
算法 思想

人工智能概率算法-模拟神经元结构预测价格

最近研究人工智能概率算法,想通过统计学的方式预测未来 比较好的例子就是股票,历史数据很丰富 输入端:4个参数(开盘价、最高价、最低价、收盘价) 输出端:4个参数 第二天(开盘价、最高价、最低价、收盘价) 把价格从-10到+10,每次迭代0.1,分类成200个特征 刚开始神经元的输入端不敏感,细胞核不 ......
神经元 人工智能 概率 算法 人工

算法基础

语言基础 取地址符 我们可以用 & 读取变量的地址。 特别的,对于数组,使用 "数组名+元素" 可以获得该变量的地址。 例如 $f+1$ 就是 $f$ 数组第 $1$ 个元素的地址。 在 C/C++ 中,指针变量的类型为类型名后加上一个 *,例如 int 类型的指针为 int*。 要想访问指针变量地 ......
算法 基础

排序算法

排序算法 1. 排序的分类 内部排序 指将需要处理的所有数据都加载到内部存储器中进行排序。 外部排序法 数据量过大时,无法全部加载到内存中,需要借助外部存储进行排序。 2. 算法的时间复杂度 2.1 概述 一般情况下,算法中的基本操作语句的重复执行次数是问题规模n的某个函数,用T(n)来表示。若有某 ......
算法

CSCI561 算法解析

CSCI561CSCI561 First Order Logic ResolutioGuidelinesThis is a programming assignment. You will be provided with sample inputs and outputs (see below). ......
算法 CSCI 561

数组的算法

数值型数组特征值统计 这里特征值涉及到:平均值,最大值,最小值,总和等 求最大值:将数组第一个元素假设为最大值 int max= arr[0];再然后用写一个判断语句如果数组第一个 元素小于当前比较的元素就把当前比较的元素赋值给max if(max<arr[i]){max = arr[i]} 求最小 ......
数组 算法

《剑指Offer》算法汇总-helloxf

package javaTest.javaBase.算法; import sun.plugin.javascript.navig.Array; import java.math.BigDecimal; import java.util.*; import java.util.concurrent.C ......
算法 helloxf Offer

java-信息安全(二十)国密算法 SM1,SM2,SM3,SM4

一、概述 国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。目前主要使用公开的SM2、SM3、SM4三类算法,分别是非对称算法、哈希算法和对称算法。 SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口 ......
SM 算法 信息 java SM1

快速幂算法

快速幂算法 设计一个算法计算$x^n$的值。 根据定义最常见也最能瞬间想到的是如下的算法: // 递归写法 public int pow1(int x, int n) { if (n == 0) return 1; if (n == 1) return x; return x * pow1(x, n ......
算法

算法-递归三(树形结构)

public class Solution { public IList<IList<int>> Permute(int[] nums) { var rtItem = new List<int>(); var visited= new Dictionary<int, bool>(); IList<I ......
树形 算法 结构

拥塞控制算法

典型拥塞控制算法思路 在互联网发展的过程当中,TCP 算法也做出了一定改变,先后演进了 Reno、NewReno、Cubic 和 Vegas,这些改进算法大体可以分为基于丢包和基于延时的拥塞控制算法。 基于丢包的拥塞控制算法以 Reno、NewReno 为代表,这类基于 AIMD 的算法只要未检测到 ......
算法

基于蛙跳算法的最优值计算matlab仿真

1.算法描述 蛙跳算法是基于种群进化的元启发式算法之一,通过模拟自然界中青蛙觅食过程中种群所体现出的交流与合作行为,以实现对问题的求解。在一片湿地中,分布着一群青蛙,每只青蛙有自己的想法,每只青蛙的想法则被定义为一个解。每只青蛙找到食物时,都会向其周围的青蛙传递信息,从而影响周围青蛙向其靠近,形成一 ......
蛙跳 算法 matlab

贪心算法

最小生成树 在无向图中选出$|V|-1$条边,使得生成树的边权和最小,这就是最小生成树问题。 我们有一个看上去有些草率的做法:给所有边按照权值从小到大排序,假设所有边都消失了,那么以从小到大的顺序加边(如果这条边对应的两点间已经有路径就跳过不加),等到加完第$|V|-1$条边时,我们会得到一棵“生成 ......
算法

C4.5分类树算法介绍

为什么C4.5会出现? 因为ID3算法节点的分支越多,信息增益也就越大,这会出现过拟合的现象,因此提出C4.5算法。 图1 C4.5的属性选择方法——获利比例 获利比例=信息增益/分支度IV 分支度IV与各分支下的类别数目之比成负相关: 假如14个样本一共分4支: 划分方法1为:分支1数目:分支2数 ......
算法 C4

理解回溯算法——从全排列问题开始

一、简介 回溯法(backtracking)是优先搜索的一种特殊情况,又称为试探法,常用于需要记录节点状态的深度优先搜索。通常来说,排列、组合、选择类问题使用回溯法比较方便。 二、从全排列问题开始理解回溯算法以数组 [1, 2, 3] 的全排列为例。 先写以 1开头的全排列,它们是:[1, 2, 3 ......
算法 问题

随机森林算法深入浅出

随机森林(Random Forest)是一种集成学习(Ensemble Learning)算法,由于其优秀的表现在数据挖掘、机器学习等领域得到广泛应用。随机森林通过同时使用多个决策树对数据集进行训练,并通过投票机制或平均化方式来得出最终的预测结果。本文将对随机森林算法的基本原理、优点和缺点以及实现过 ......
深入浅出 算法 森林

【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(下)

承接上文 承接上一篇文章【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)】我们基本上对层级时间轮算法的基本原理有了一定的认识,本章节就从落地的角度进行分析和介绍如何通过Java进行实现一个属于我们自己的时间轮服务组件,最后,在 ......