欢迎光临散文网 会员登陆 & 注册

算法(Algorithms)三

2023-02-26 16:38 作者:泡椒芝士plus  | 我要投稿

16.贪心算法::局部最优解的合集,以实现全局最优解

17.NP 完全问题:

元素较少时算法的运行速度非常快,但随着元素数量的增加,速度会变得非常慢。

涉及“所有组合”的问题通常是NP完全问题。

不能将问题分成小问题,必须考虑各种可能的情况。这可能是NP完全问题。

如果问题涉及序列(如旅行商问题中的城市序列)且难以解决,它可能就是NP完全问题。

如果问题涉及集合(如广播台集合)且难以解决,它可能就是NP完全问题。

如果问题可转换为集合覆盖问题或旅行商问题,那它肯定是NP完全问题。

18.动态规划:处理小问题,集合起来处理大问题,但每个小问题要是离散的,不依赖于其他子问题才行

1.对于前面的背包问题,最终答案总是在最后的单元格中。但对于最长公共子串问题,答案为网格中最大的数字——它可能并不位于最后的单元格中。

2.最长公共子序列:

需要在给定约束条件下优化某种指标时,动态规划很有用。

问题可分解为离散子问题时,可使用动态规划来解决。

每种动态规划解决方案都涉及网格。

单元格中的值通常就是你要优化的值。

每个单元格都是一个子问题,因此你需要考虑如何将问题分解为子问题。

没有放之四海皆准的计算动态规划解决方案的公式。

19.KNN算法:

1.按距离归类:K系数

2.特征抽取:

3.分类:编组

4.回归:线性预测

5.余弦相似度计算:角度分类

20.二叉查找树(全O(logn):对于每个节点,该节点左边的节点都比它小,右边的节点都这个基准节点大,但左右不平衡会导致性能不佳。

1.红黑树:平衡状态的特殊二叉树

21.反向索引:通过关键字反向找到目标页面,常用于搜索引擎。

22.傅里叶变换:处理信号,如地震预测、DNA分析、音乐识别。

23.并行算法:使内核平衡分配资源

24.分布式算法:属于特殊的并行算法,如MapReduce,map:映射函数 reduce:归并函数

1.映射函数map:接受一个数组,并对其进行处理转换为另一个数组,使用多台计算机同时处理

2.归并函数reduce:将多项归并为一项

25.布隆过滤器:一种概率型数据结构,判断网页是否已经搜集,散列表的答案绝对可靠,布隆过滤器的答案不绝对可靠,但可能规避恶意网站,且占用存储空间小。

26.Hyperloglog:HyperLogLog近似地计算集合中不同的元素数,与布隆过滤器一样,它不能给出准确的答案,但也八九不离十,而占用的内存空间却少得多。

27:SHA算法:安全散列算法函数,给定一个字符串,返回其散列值

1.通过计算散列值来比较文件是否相同

2.网站密码本质上是网站服务器计算输入值的散列值,同数据库中的散列值进行比较

3.散列值无法转换成原始字符串

4.目前完善的SHA算法:SHA-2、SHA-3

5.最安全的密码散列函数:bcrypt

6.局部不敏感

  1. Simhash算法:

    1.局部敏感

    2.通过比较散列值来判断两个字符的相似程度

    3.检查两项内容的相似程度

    4.用途:1.判断网页是否已搜集 2.判断文章是否来自于网上 3.判断用户上传的文档是否与有版权内容类似,从而拒绝

  2. Diffie-Hellman算法:

    1.两个密钥:公钥和私钥。公钥就是公开的,可使用其他任何方式来发布。使用公钥对对象进行加密。加密后的消息只有使用私钥才能解密。

30.线性规划:Simplex算法,所有的图算法都可使用线性规划来实现。线性规划是一个宽泛得多的框架,图问题只是其中的一个子集,研究最优化问题。


算法(Algorithms)三的评论 (共 条)

分享到微博请遵守国家法律