算法
qcyfred
立大志,入主流,上大舞台,干大事业!
展开
-
经典算法(2):黄金分割法(Gold)
黄金分割法。0.618法。优选法。以0.618^n的速率缩减区间,寻找最值点。两点说明。1. 当能明确目标函数是一个单峰函数的时候,2. 当知道目标函数的极值点在哪个区间范围内的时候,此方法非常有效。昨天看招聘信息,第一条就是,天文地理、物理数学等烧脑专业优先。+_+对于我们这种还不算特别烧脑的专业的人来说,凭空想可能有点难度。不过拿一支笔在草稿纸上画画图,应该就可以知道怎么缩小区间了。需要多用几...原创 2016-12-23 00:10:37 · 19630 阅读 · 2 评论 -
为什么DFT有快速算法?
为什么DFT有快速算法?从数学上看,离散傅立叶变换是一个特殊范德尔矩阵的变换,因为这种矩阵可以分解,才存在快速算法。那DWT呢?转载 2017-07-19 23:12:40 · 1485 阅读 · 0 评论 -
遗传算法简介及基本遗传算法
遗传算法简介据说,可以用在很多领域。先学习在函数优化方面的应用。据说,对于非线性、多模型、多目标的函数优化问题,GA似乎可以得出不错的结果。“优胜劣汰”。基本操作:选择、交叉,变异。每一个基本操作,又有很多种方法。1. 选择。根据适应度来选择。在函数优化问题中,为了找最大值,那适应度可以直接定义为f(x0),把某一个个体送入函数,该函数的输出结果。、(1) 按比例的适应度计算(2) 基于排序的适应...原创 2017-05-12 11:06:30 · 3112 阅读 · 2 评论 -
排序:归并排序
归并排序简介归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。平均时间和最坏时间都是O(nlog(n)),辅助存储是O(n)。1. 严蔚敏的书上说,递归写法很简洁,但实...原创 2017-01-12 12:11:30 · 461 阅读 · 0 评论 -
排序:快速排序算法
概述快速排序,确实是一种排序算法,归到排序算法类别下。又因为确实是经典算法,也就归到经典算法类别下了。时间复杂度,最好为O(n),最差为O(n^2),平均为O(nlog(n))。为什么?用递归的写法去推?在快速排序算法中,使用了分治策略。首先把序列分成两个子序列,递归地对子序列进行排序,直到整个序列排序结束。步骤如下:在序列中选择一个关键元素做为轴;对序列进行重新排序,将比轴小的元素移到轴的前边,...原创 2017-01-02 22:29:47 · 703 阅读 · 0 评论 -
排序:冒泡、选择、直接插入排序
概述排序就是把一系数的数据按一定的顺序进行排列的过程。按是否要将所有数据加载到内存中进行排序,把排序分为内部排序和外部排序。内部排序:将要排序的所有数据都加在到内存里面进行排序,包括交换式排序法、选择式排序法和插入式排序法。外部排序:数据量过大,无法全部加载到内存,包括合并排序法和直接合并排序法等。交换式排序法属于内部排序法,是运用数据值比较后,依判断规则对数据的位置进行交换,以达到排序的目的,包...原创 2016-12-28 20:59:46 · 879 阅读 · 0 评论 -
查找:KMP字符串匹配算法
开篇废话今天元旦,再次祝大家2017一帆风顺,梦想成真!中午我去食堂吃饭的路上,高中校友、大学同班同学LQ,微信上问我猜她在哪里。哈哈,我说中山大学。看我好了解你。然后这人估计就在学校里稀里哗啦哭了几场。毕竟是曾经的梦想,就像我的BUAA一样。唉,不是我的。然后跟我吐槽说现在天天当产品狗,求爹爹告奶奶地找开发的,我也不知道她具体在做什么,大概找人做可行性分析?这几天心情都有点不爽啊!一、先是我这几...原创 2017-01-01 22:14:09 · 561 阅读 · 1 评论 -
排序:基数排序
基数排序简介摘自百度百科。基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于...原创 2017-01-12 12:13:19 · 709 阅读 · 0 评论 -
从数组中找出其和等于S的两个数
在一个正数数组A[]中,看是否存在两个数,要求这两个数之和等于某个指定的数S。当然,解法有很多种。我就把我想到的,以及别人提供的一些思路总结一下。反正大概都是头脑风暴了。1. 最朴实的做法两重for循环。就算只算一个矩阵的下三角,那也是O(n^2)的量级。2. 排序以后再找因为是数组中全是正数,把S分解成两个整数相加,最大也就是S-1了。所以,如果能将数组A[]是个有序数组,就能很快将搜索范围缩...原创 2017-01-12 12:06:21 · 1942 阅读 · 0 评论 -
查找:线性结构的二分查找
简介查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。线性结构、树、图的查找都不一样。线性结构的顺序查找就不多说了,这里总结线性结构的二分查找。二分查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升...原创 2017-01-02 23:39:44 · 848 阅读 · 0 评论 -
查找:从N个乱序数据中找出第K小的数
从N个乱序数据中找出第K小的数如何从N个乱序数据中,快速地找出第K小的数?如果K接近0或者接近N,用选择排序,排几个应该就可以找到了。如果K比较大呢?或者说,就是要找N个乱序数据中的中位数呢?思路和快速排序很像。非常像。Review:快速排序算法现假设数组A,有N个元素。要快速地找出第K小的元素。基本思想还是用递归去查找。当然,在查找的过程中,也是需要排序的。但只是粗略地排序。关键问题还是找中轴变...原创 2017-01-03 12:55:49 · 5561 阅读 · 0 评论 -
经典算法(3):动态时间规整算法(DTW)
基本DTW算法音乐信号处理里,在同步两个音乐片段的时候,会用到动态时间规整算法。百度了一下,语音识别里面,Dynamic Time Warping (DTW)也是必不可少的。以下摘自百度百科。一次正确的发音应该包含构成该发音的全部音素以及正确的音素连接次序。其中各音素持续时间的长短与音素本身以及讲话人的状况有关。为了提高识别率,克服发同一音而发音时间长短的不同,采用对输入语音信号进行伸长或缩短直到...原创 2016-12-23 16:25:40 · 16020 阅读 · 3 评论 -
经典算法(4):K最近邻算法(KNN)
前言KNN,有监督学习。以下内容摘自百度词条。邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在...原创 2016-12-23 18:14:39 · 4332 阅读 · 0 评论 -
经典算法(5):K-均值算法(K-Means)
以下内容摘自百度百科。K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。k-means 算法缺点① 在 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的。很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适。这也是 K-means 算法的一个不足。有...原创 2016-12-23 20:00:08 · 7748 阅读 · 2 评论 -
经典算法(1):梯度下降法(Gradient)
梯度下降法,可以用来找一个函数的(局部)极值点。那实际中的一些背景就是:怎么做最划算?怎么规划胜率最大?……Gradient算子,线性算子,可作用于一元或多元数量值函数。某一点处的梯度方向,即为在该点处函数值增长得最快的方向。其反方向,即为在该点处函数值减少得最快的方向。梯度下降法、最速下降法,可用于极值问题的求解。由于初值和步长的问题,可能陷入局部极值,也可能震荡,可能发散。说明:需要对目标函数...原创 2016-12-22 23:34:49 · 1739 阅读 · 0 评论 -
牛顿迭代法
牛顿迭代法经常在1. 求非线性方程的根2. 求函数极小值点……方面使用。1. 求根。(摘自百度)非线性方程求解,什么时候会用?比如,根据50ETF欧式期权的市场价格、期权剩余时间、行权价、标的的现货价格,反向计算其现货波动率(隐含波动率 ImpliedVolatility)。以下摘自百度百科。隐含波动率(Implied Volatility)是将市场上的期权或权证交易价格代入权证理论价格模型<...原创 2017-10-10 11:25:02 · 3651 阅读 · 0 评论