数据结构与算法
文章平均质量分 93
大厂实用算法总结
shinelord明
北方待了10多年,北京六年多工作时间。先后在大唐电信,爱奇艺,京东从事java开发、软件开发、与大数据开发、设计等相关工作。18年回重庆,在一家互联网金融公司,从事后端开发与大数据相关工作。
展开
-
【再谈设计模式】原型模式~复制的魔法师
原型模式是一个强大的设计模式,适用于需要频繁创建相似对象的场景。通过理解原型模式的基本概念、适用场景、优缺点以及实现方式,开发者可以在实际项目中灵活运用这一模式,提高代码的可维护性和性能。原创 2024-11-02 14:52:20 · 523 阅读 · 0 评论 -
【再谈设计模式】单例模式~唯一性的守护者
单例模式的核心思想是限制一个类仅能实例化一次,并提供一个全局访问点。这样可以避免重复实例化导致的资源浪费和状态不一致的问题。原创 2024-10-27 18:52:28 · 1243 阅读 · 3 评论 -
【C++】C++语言知识总结浅析
C++是一种广泛使用的编程语言,因其灵活性和强大的功能而受到开发者的青睐。C++的编程思想、发展历史、版本管理工具、运行原理、数据类型、应用场景、桌面程序开发框架、语言优势、具体工具与框架、应用示例、嵌入式与算法场景以及在大厂中的应用。原创 2024-10-21 00:28:26 · 1250 阅读 · 5 评论 -
【算法】JAVA算法库
java算法库总结,以及代码示例。原创 2023-06-09 11:48:53 · 188 阅读 · 0 评论 -
【算法】机器学习几大算法总结
机器学习十大算法总结:一、朴素贝叶斯二、决策树三、随机森林四、梯度提升树五、逻辑回归六、多层感知机七、因子分解机八、卷积神经网络九、循环神经网络十、变形金刚 等。原创 2023-12-11 00:46:08 · 1339 阅读 · 0 评论 -
【算法】一种算法分类方式及其应用
在计算机科学领域,算法是解决问题的有效方法,而对算法进行分类有助于理解它们的特性、优劣以及在不同场景下的应用。常见的算法分类方法,包括按设计思想、问题类型、数据结构和应用领域等,每一类算法会对应有其典型和实际应用。算法的出现是为了解决问题和简化复杂的任务。它们提供了一种系统的方法来执行特定的计算或操作,可以应用于各种领域,包括计算机科学、数学、工程、经济学等。原创 2024-05-04 23:57:39 · 1461 阅读 · 1 评论 -
【算法】动态规划
动态规划是一种强大的算法设计技术,适用于解决许多复杂的最优化问题。通过合理地设计状态转移方程和存储子问题的结果,动态规划能够显著提高算法的效率。在实际应用中,动态规划可以帮助我们解决背包问题、最短路径问题等多种场景,具有广泛的应用前景。原创 2024-07-30 17:33:58 · 1268 阅读 · 0 评论 -
【算法】蚁群算法
蚁群算法是一种强大的优化工具,广泛应用于多个领域。通过模拟蚂蚁觅食的机制,蚁群算法能够有效地解决组合优化问题。开发者可以根据具体问题需要,灵活调整算法参数,并选择合适的编程语言实现。原创 2024-08-16 17:41:32 · 5393 阅读 · 17 评论 -
【算法】一致性哈希
一致性哈希算法(Consistent Hashing)是一种分布式算法,因其出色的分布式数据存储特性,被广泛应用于缓存、负载均衡、数据库分片等场景。一致性哈希算法的核心思想是将数据映射到一个固定范围的哈希环上,服务器节点也映射到这个哈希环上。每个物理节点对应多个虚拟节点,数据映射到虚拟节点上,从而实现数据的均匀分布。哈希环用于存储虚拟节点,节点映射表用于存储虚拟节点与物理节点的对应关系。一致性哈希算法使用一个长度为2^32的环形哈希空间,通常使用MD5或SHA-1等哈希函数将数据映射到这个空间。原创 2024-07-22 15:45:10 · 1287 阅读 · 0 评论 -
【算法】协同过滤
协同过滤算法是一种推荐系统核心技术,它通过分析用户之间的行为相似性或项目(如商品、电影等)的属性相似性来预测用户可能喜欢的项目。该算法分为两类:基于用户的协同过滤和基于项目的协同过滤。基于用户的协同过滤会寻找与目标用户行为相似的其他用户,并推荐这些用户喜欢的物品;而基于项目的协同过滤则是寻找相似的项目推荐给喜欢某个项目的其他用户。协同过滤的优势在于能够发掘潜在的用户喜好,提供个性化推荐,但其缺点是可能存在冷启动问题和数据稀疏问题。原创 2024-08-12 14:30:51 · 1209 阅读 · 0 评论 -
【算法】梯度下降
梯度下降算法是一种优化方法,用于最小化损失函数并找到模型参数的最佳值。其核心思想是通过迭代更新参数,沿着损失函数梯度的反方向逐步逼近最优解。在每次迭代中,算法计算损失函数相对于参数的梯度,然后根据设定的学习率调整参数值。梯度下降有多种变体,包括批量梯度下降(使用整个数据集计算梯度)、随机梯度下降(每次迭代使用单个样本)和小批量梯度下降(使用数据的小批量)。此外,动量法和自适应学习率算法(如Adam)可以提高收敛速度和稳定性。选择合适的梯度下降方法和调整超参数对于模型训练的效率和效果至关重要。原创 2024-08-13 14:44:03 · 1841 阅读 · 14 评论 -
【算法】卡尔曼滤波
卡尔曼滤波是一种强大的递归滤波器,适用于处理线性或非线性动态系统中的不确定性。卡尔曼滤波的原理、实现和应用场景,多语言代码示例。在实际应用中,卡尔曼滤波可以帮助我们准确地估计系统状态,提高决策和控制的精度。随着技术的发展,卡尔曼滤波及其变种在各个领域的应用将更加广泛。原创 2024-07-31 16:49:23 · 2141 阅读 · 0 评论 -
【算法】装箱问题
Bin-Packing算法是解决资源优化分配问题的算法,旨在将多个物品有效地装入有限数量的容器中,以减少使用的容器数量。常见的算法包括First Fit、Next Fit、Best Fit等,它们通过不同的策略来实现物品的装箱,如按顺序放入第一个适合的容器或选择剩余空间最小的容器。这类算法在计算机科学、物流和生产制造等领域有广泛应用,能够提高资源利用率和操作效率。原创 2024-08-05 14:49:17 · 1463 阅读 · 0 评论 -
【算法】分布式共识Paxos
Paxos算法是由莱斯利·兰伯特(Leslie Lamport)在1990年提出的一种解决分布式系统中一致性问题的算法。原创 2024-07-25 15:26:26 · 686 阅读 · 0 评论 -
【算法】布隆过滤器
布隆过滤器是一种用来快速判断一个元素是否属于一个集合的数据结构,它通过牺牲一定的准确性来换取空间和时间的效率。原创 2024-07-24 14:07:28 · 1495 阅读 · 0 评论 -
【算法】道格拉斯
道格拉斯-普克算法是一种高效的折线简化算法,广泛应用于GIS、图形处理和数据压缩等领域。通过合理的实现和应用,可以有效地提高系统的性能和用户体验。希望本文能够帮助您理解并实现该算法。原创 2024-07-29 23:37:19 · 1549 阅读 · 0 评论 -
【算法】傅里叶变换
傅里叶变换的基本思想是将一个时域信号分解为多个不同频率的正弦和余弦波的叠加。:相比DFT,FFT通过减少乘法次数来提高计算效率,时间复杂度降低到 𝑂(𝑁log𝑁)O(NlogN)。在实际应用中,例如一个音频处理服务,可以使用傅里叶变换来实现频谱分析或音频特征提取。其中,𝑋[𝑘]X[k] 是信号 𝑥[𝑛]x[n] 的傅里叶变换,𝑁N 是样本点数。:基于定义进行计算,时间复杂度为 𝑂(𝑛2)O(n2),适用于小规模数据。:最常用的高效算法,时间复杂度为 𝑂(𝑛log𝑛)O(nlogn)。原创 2024-07-26 10:04:26 · 2040 阅读 · 1 评论 -
【算法】遗传算法
遗传算法是一种灵活强大的优化工具,适用于多个领域。通过不断演化和选择,可以找到较优的解。在具体实现时,需综合考虑问题的实际需求,合理设计适应度函数和遗传操作。由于遗传算法的随机性,可能需要多次运行以找到较优解。希望这篇博文能帮助你更好地理解和实现遗传算法。原创 2024-09-18 11:33:03 · 1169 阅读 · 5 评论 -
【算法】模拟退火
模拟退火算法(Simulated Annealing, SA)是一种启发式全局优化算法,灵感来源于固体退火原理。在冶金学中,退火是将金属加热到一定温度,再缓慢冷却以消除内部应力,使金属结构达到稳定状态。在优化问题中,模拟退火算法通过接受一定概率的“坏解”(即解质量下降的情况),以跳出局部最优,最终逼近全局最优解。原创 2024-09-09 15:52:08 · 3496 阅读 · 6 评论 -
【算法】PageRank
PageRank算法由拉里·佩奇和谢尔盖·布林在1996年提出,旨在为网页排序并评估其重要性。算法的核心思想是认为一个网页的重要性与指向它的网页的重要性成正比,一个网页被多个重要网页链接到,意味着它也应该被视为重要网页。原创 2024-09-03 15:59:48 · 1688 阅读 · 0 评论 -
【算法】令牌桶算法
令牌桶算法是一种有效的流量控制技术,能够平滑流量并限制突发请求。通过在桶中动态生成和管理令牌来限制数据发送速率。算法的核心原理是设置桶的容量和令牌生成速率,从而控制请求处理的速率,适用于网络流量控制和API限流等场景。相比其他算法(如漏桶算法、固定窗口计数等),令牌桶能更灵活地应对突发流量。原创 2024-08-20 00:00:00 · 1270 阅读 · 0 评论 -
【算法】蒙特卡洛模拟
蒙特卡洛模拟是一种强大的工具,适用于多种复杂问题的求解。通过对随机性和统计学的利用,它能够在不确定性中提供有价值的洞见。原创 2024-08-29 17:42:52 · 1046 阅读 · 0 评论 -
【算法】演员~评论家方法
演员-评论家方法是一种强大的强化学习算法,结合了策略和价值函数的优点,适用于多种复杂的环境。原创 2024-08-30 17:12:45 · 1159 阅读 · 0 评论 -
【算法】粒子群优化
粒子群优化算法(PSO)是一种基于群体智能的优化算法,由Kennedy和Eberhart于1995年提出。PSO模拟鸟群觅食行为,通过一组“粒子”在解空间中搜索最优解。每个粒子代表一个潜在解,粒子根据自身的历史最佳位置和群体的历史最佳位置调整自己的位置,从而逐步逼近全局最优解。PSO的主要优势在于其简单易懂的结构和较少的参数设置,适用于多种复杂优化问题,如函数优化、机器学习和数据挖掘等。它能够有效处理非线性和高维问题,收敛速度较快。然而,PSO也存在一些缺点,如易陷入局部最优解和对参数设置敏感等。在原创 2024-08-23 19:08:21 · 871 阅读 · 0 评论