算法
日常算法
rrr2
这个作者很懒,什么都没留下…
展开
-
【图像聚类】|谱聚类 sklearn
https://www.zhihu.com/question/494753171谱聚类基于相似度矩阵import numpy as npfrom sklearn import datasetsfrom sklearn.cluster import SpectralClusteringfrom sklearn import metricsX, y = datasets.make_blobs(n_samples=512, n_features=6, centers=5, cluster_std原创 2022-03-29 22:22:28 · 1953 阅读 · 0 评论 -
【kmeans】自定义聚类距离
pyclustering 开源from pyclustering.utils import read_samplefrom pyclustering.utils.metric import distance_metric, type_metricfrom pyclustering.samples.definitions import SIMPLE_SAMPLESdef my_manhattan(point1, point2): dimension = len(point1) re原创 2022-03-29 17:27:33 · 2912 阅读 · 0 评论 -
Hamming(汉明)窗的原理介绍及实例解析
概念 在数字信号处理过程中,每次FFT变换只能对有限长度的时域数据进行变换,因此,需要对时域信号进行信号截断。即使是周期信号,如果截断的时间长度不是周期的整数倍(周期截断),那么,截取后的信号将会存在泄漏。为了将这个泄漏误差减少到最小程度(注意我说是的减少,而不是消除),我们需要使用加权函数,也叫窗函数。加窗主要是为了使时域信号似乎更好地满足FFT处理的周期性要求,减少泄漏。这里面,有很多窗函数可以使用,不过,每种窗函数的使用场景是不同的。由于直接对信号(加矩形窗)截断会产生频率泄露,为了改善频率泄露的原创 2021-01-28 18:40:34 · 15334 阅读 · 0 评论 -
插值查找
在二分查找中,查找点的计算为:,经过变换后,有:而插值查找,将 1/2改进为插值查找就是根据要查找的关键字 key 与查找表中最大最小记录的关键字比较后的查找方法,其核心在于插值的计算公式从时间复杂度来说,其最坏时间复杂度也是 O(longn),但对于表长较大,而关键字分布又比较均匀的查找表来说,其平均性能要比二分查找好的多。反之,若查找表中关键字分布非常不均匀,那么插值查找未必是很合...原创 2020-05-04 08:15:23 · 277 阅读 · 0 评论 -
n个数里找最大的m个Topk-堆排序快排,非递归
1.最简单的方法:将n个数排序,排序后的前k个数就是最大的k个数,这种算法的复杂度是O(nlogn)2.O(n)的方法:利用快排的patition思想,基于数组的第k个数来调整,将比第k个数小的都位于数组的左边,比第k个数大的都调整到数组的右边,这样调整后,位于数组右边的k个数最大的k个数(这k个数不一定是排好序的)3.O(nlogk)的方法:先创建一个大小为k的最小堆,接下来我们每次从输入的...原创 2020-03-05 23:12:06 · 724 阅读 · 0 评论 -
FF最大流问题算法
一、最大流问题最大流问题(maximum flow problem),一种组合最优化问题,就是要讨论如何充分利用装置的能力,使得运输的流量最大,以取得最好的效果。实际来源:有一个自来水管道运输系统,起点是 s,终点是 t,途中经过的管道都有一个最大的容量,可以想象每条管道不能被水流“撑爆”。求从 s 到 t 的最大水流量是多少?数学模型性质1:容量限制(Capacity Constra...原创 2018-11-23 11:38:13 · 4492 阅读 · 0 评论 -
归并排序
时间复杂度O(nlogn)基本思路分治法。对半分,直到无法再分(分成单个)按顺序排序,合并(越连接越长)如图:ref博客1.分的过程:使用递归。只要首尾序列号不同,一直拆分,直到剩一个数,停止递归。2.合的方法:不断比较两段数列的首位数字,每次都把小的那个首位数字放进临时数组空间内,直到任何一个取干净就停止。剩余的直接接到最后面如图:两个数组合并函数://将有二个有...原创 2018-10-24 21:23:51 · 186 阅读 · 0 评论 -
快速排序原理及C++代码
ref博客算法复杂度O(N*logN)步骤:1.选基数2.分两边,小于基数在左,大于基数的在右。3.递归法处理。1. 选基数最简单的方式,选择最左边或最右边的数。2. 分两边就像手里拿着一个苹果做尺子,对一堆苹果分成大小两堆一样。最后把手里这个苹果放在中间。基本思路:以基数为基准,从两头分别向中间寻找。以基数大小为标准,右边小的放左边,左边大的放右边。并不断靠拢,直到碰头...原创 2018-10-24 08:07:25 · 467 阅读 · 0 评论