深度学习基础(三)——优化算法
1 优化算法1.1 局部最小值点1.2 鞍点2 梯度下降法和随机梯度下降法2.1 梯度下降法2.1.1 一维梯度下降法2.1.2 学习率2.1.3 多维度梯度下降2.2 随机梯度下降法2.3 小批量随机梯度下降法3 动量法3.1 指数加权平均(EMA)3.2 由指数加权移动平均理解动量法3.2 Ne...
梳理OpenCV各立体匹配算法的分类和理论基础(更新中)
最近总有一个困惑,论文或者说研究中的立体匹配算法和OpenCV中实现的立体匹配算法有什么对应关系,特别是经常看到资料中一谈到OpenCV立体匹配函数,就是BM、SGBM和GC成套的出现,那么这三个算法的理论来源是什么,它们三个是什么样的“江湖地位”,OpenCV还有没有实现其他算法没有被介绍...
算法基础知识概述
前言: 要开始算法的学习,除了那些让我们感到神奇的算法思想以外,我们还是需要知道一些基本的概念,掌握一些基本的数学基础。一、算法复杂性分析 在数据结构中我们看时间复杂度的大小都是简化的看问题规模和基本语句。这里我们可以简化归纳一下,我们只需要考虑当问题规模充分大时,算法复杂性在渐进意...
蓝桥杯算法基础(11):十大排序算法(冒泡排序)c语言般版
十大排序算法合集(c语言般) 冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 堆排序 计数排序 桶排序 基数排序 分类:交换类1.冒泡排序 2.快速排序分配类1.计数排序 2.基数排序选择类1.选择排序归并类1.归并排序插入类1.插入排序 ...
蓝桥杯算法基础(16):十大排序算法(计数排序)(基数排序)c语言版- 基数排序
举例: 154 423 365 251 78 92 640--------------------------------------(第一轮)(10的0次方 位即个位)640 251 92 423 154 365 78(第二轮)(10的1次方 位即十位)...
【ONE·基础算法 || 前缀和】
总言 主要内容:编程题举例,理解前缀和的思想。 文章目录 总言1、前缀和2、【模板】一维前缀和(easy)2.1、如何理解一维数组前缀和2.2、题解3、【模板】二维前缀和(medium)3.1、如何理解二维数组前缀和3.2、题解4、寻找数组的中心下标(easy)4.1、题解5、除自身以外...
算法基础——算法优劣的衡量
针对一个问题可以有多种的算法方法来解决问题,当然我们最喜欢的还是简单的、高效的方法。如何衡量算法的好坏,是学习算法的重要基础。最初,用所需要的计算时间来衡量一个算法的好坏但不同的机器相互之间无法比较 需要用独立于具体计算机的客观衡量标准 1.问题的规模 2.基本运算 3.算法的计算量函数问题的规模输...
代码随想录算法训练营第二十四天|● 理论基础 ● 77. 组合(JS写法)
回溯理论基础 回溯法解决的问题都可以抽象为树形结构,因为回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度,都构成的树的深度。递归就要有终止条件,所以必然是一棵高度有限的树(N叉树)。 回溯三部曲 1、回溯函数模板返回值以及参数 在回溯算法中,我的习惯是函数起名字为bac...
python程序设计与算法基础教程(第二版)微课版 第10章上机实践和补充的两道题
1编写程序,生成包含20个随机 数的列表,然后将前10个元素升 序排列,后10个元素降序排列, 并输出结果。 2编写函数,模拟Python内置函 数。#2、程序代码 def add(x,y): return x+y def sub(x,y): return x-y def mul(x,y): re...
绪论——算法设计原则【数据科学与工程算法基础】
一、题记 最近情绪不太稳定,些许烦躁,也就一直没践行前边说的“学习记录”的想法。现在开始做了,春华易逝,正当时,有想法就去做,踌躇懊悔是这个年纪最不该做的事。 二、前言 之前说了分块做这个系列,今天就是第一章节——绪论。 详情可参考: 数据科学的算法基础——学习...
3.基础算法之搜索与图论
1.深度优先搜索 深度优先搜索(DFS,Depth First Search)是一种用于遍历或搜索树或图的算法。它将当前状态按照一定的规则顺序,先拓展一步得到一个新状态,再对这个新状态递归拓展下去。如果无法拓展,则退回一步到上一个状态,再按照原先设定的规则顺序重新寻找一个状态拓展。如此搜索,直至找...
【转载】论文大数据算法的基础!Google的三驾马车(GFS,MapReduce,BigTable)
Google引爆大数据时代的三篇论文谈到Hadoop的起源,就不得不提Google的三驾马车:Google FS、MapReduce、BigTable。虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文,奠定了风靡全球的大数据算法的基础!一,GFS—-20032003年,...
图像处理之基础---图像缩放中的一些 灰度插值算法
在图像缩放,旋转等一些图像处理中,对图像进行插值是不可缺少的一个步骤,下面对一些常用的插值算法进行介绍:http://www.chinaai.org/i...
代码随想录算法训练营day38|理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯- 509. 斐波那契数
代码随想录 视频:手把手带你入门动态规划 | LeetCode:509.斐波那契数_哔哩哔哩_bilibili 动态规划五部曲: 1.确定dp[i]的含义:第i个数的斐波那契数值为dp[i] 2.确定递推公式:dp[i] = dp[i-1]+dp[i-2] 3.dp数组如何初始化:dp[0]...
算法基础课&提高课 笔记要点 + OIer必备小知识
(表情显示不出来的话戳这里QwQ)$ {\color {hotpink} {\Large \mathbf{{♥\ I\ Iove\ OI\ ♥}}} }$“学习方...
大数据基础--数据挖掘算法(刘鹏《大数据》课后习题答案)
1.简述数据挖掘概念。从科学定义上分析,数据挖掘是从大量的、有噪声的、不完全的、模糊和随机的数据中,提取出隐含在其中的、人们事前不知道的、具有潜在利用价值的信息和知识的过程...
数据结构和算法基础(1)(数据逻辑结构和存储结构)
1,计算机解决客观世界中问题过程:首先通过对客观世界的认知形成印象和概念从而得到了信息,在此基础上建立概念模型,它必须能够如实地反映客观世界中的事物以及事物间的联系;根据概念模型将实际问题转化为计算机能够理解的形式,然后设计程序;用户通过人机交互界面与系统交流,使系统执行相应操作,最后解决实际的问题...
Java 数据结构-特点: 代表一个队列,通常按照先进先出(FIFO)的顺序操作元素。 实现类: LinkedList, PriorityQueue, ArrayDeque。 堆(Heap) 堆(Heap)优先队列的基础,可以实现最大堆和最小堆。 PriorityQueue<Integer minHeap = new PriorityQueue<>; PriorityQueue<Integer maxHeap = new PriorityQueue<>(Collections.reverseOrder); 树(Trees) Java 提供了 TreeNode 类型,可以用于构建二叉树等数据结构。 class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } 图(Graphs) 图的表示通常需要自定义数据结构或使用图库,Java 没有内建的图类。 以上介绍的只是 Java 中一些常见的数据结构,实际上还有很多其他的数据结构和算法可以根据具体问题选择使用。 其他一些说明 以下这些类是传统遗留的,在 Java2 中引入了一种新的框架-集合框架(Collection),我们后面再讨论。 枚举(Enumeration) 枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。 枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。 例如,枚举定义了一个叫nextElement 的方法,该方法用来得到一个包含多元素的数据结构的下一个元素。 关于枚举接口的更多信息,请参见枚举(Enumeration)。 位集合(BitSet) 位集合类实现了一组可以单独设置和清除的位或标志。 该类在处理一组布尔值的时候非常有用,你只需要给每个值赋值一"位",然后对位进行适当的设置或清除,就可以对布尔值进行操作了。 关于该类的更多信息,请参见位集合(BitSet)。 向量(Vector) 向量(Vector)类和传统数组非常相似,但是Vector的大小能根据需要动态的变化。 和数组一样,Vector对象的元素也能通过索引访问。 使用Vector类最主要的好处就是在创建对象的时候不必给对象指定大小,它的大小会根据需要动态的变化。 关于该类的更多信息,请参见向量(Vector) 栈(Stack) 栈(Stack)实现了一个后进先出(LIFO)的数据结构。 你可以把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其他元素的顶部。 当你从栈中取元素的时候,就从栈顶取一个元素。换句话说,最后进栈的元素最先被取出。 关于该类的更多信息,请参见栈(Stack)。 字典(Dictionary) 字典(Dictionary) 类是一个抽象类,它定义了键映射到值的数据结构。 当你想要通过特定的键而不是整数索引来访问数据的时候,这时候应该使用 Dictionary。 由于 Dictionary 类是抽象类,所以它只提供了键映射到值的数据结构,而没有提供特定的实现。 关于该类的更多信息,请参见字典( Dictionary)。 Dictionary 类在较新的 Java 版本中已经被弃用(deprecated),推荐使用 Map 接口及其实现类,如 HashMap、TreeMap 等,来代替 Dictionary。
Map 接口及其实现类 可以参考:Java 集合框架。 哈希表(Hashtable) Hashtable类提供了一种在用户定义键结构的基础上来组织数据的手段。 例如,在地址列表的哈希表中,你可以根据邮政编码作为键来存储和排序数据,而不是通过人名。 哈希表键的具体含义完全取决于哈希表的使用情景和它...
Java基础算法
排序算法 冒泡排序 冒泡排序是一种简单的排序算法,它的工作原理是通过重复遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。这个过程会重复地进行,直到没有再需要交换,也就是该数列已经排好序了 比较相邻元素:在数列中,从第一个元素开始,依次比较相邻的两个元素。交换元素:如果第一...
【矩阵计算】矩阵乘法其一:基础符号和算法
矩阵符号矩阵操作向量符号向量操作Saxpy算法Gaxpy算法外积矩阵分割和冒号符号矩阵-矩阵乘法复数矩阵矩阵符号如果用表示所有实数的集合,那么我们用表示所有的实数矩...