随笔分类 - 架构设计类与算法
常用的排序算法之插入排序(Insertion Sort)
摘要:插入排序(Insertion Sort) 原理 插入排序(Insertion Sort)的起源并不明确,但它是计算机科学中最早提出的排序算法之一。它的工作原理类似于我们日常整理扑克牌或书籍时的过程:我们创建一个新的有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 定义 插入
阅读全文
常用的排序算法之选择排序(Selection Sort)
摘要:选择排序(Selection Sort) 原理 选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。这种排序方法是不稳定的排序方法。选择排序的起源并不明确,但它是计
阅读全文
常用的排序算法之冒泡排序(Bubble Sort)
摘要:冒泡排序(Bubble Sort) 原理 冒泡排序(Bubble Sort)是一种简单的排序算法,其名字来源于越小的元素会经由交换慢慢“浮”到数列的顶端(或越大的元素“沉”到底端),就如同气泡从水底冒到水面一样。虽然这个算法不是最高效的,但由于其实现简单直观,常常用于教学目的。 定义 冒泡排序是一种
阅读全文
满二叉树的二分K-means聚类并行推荐算法思路之二
摘要:对满二叉树的二分K-means聚类并行推荐算法这个主题我写二个实现思路,本文是第二个方案,若想查看方案一请移步到满二叉树的二分K-means聚类并行推荐算法 下面实现一个基于满二叉树的二分K-means聚类并行推荐算法,并应用于MovieLens数据集以提高推荐系统的准确性和可扩展性,可以按照以下步
阅读全文
满二叉树的二分K-means聚类并行推荐算法
摘要:实现方案和思路 算法设计 二分K-means算法迭代: 初始化:随机选择一个中心点作为根节点,然后对该中心点应用K-means算法(K=2),得到两个子簇。 迭代:对每个子簇重复应用K-means算法(K=2),直到满足停止条件(如达到预设的树深度或簇内凝聚度低于某阈值)。 停止条件:簇内凝聚度(如
阅读全文
自平衡的树形数据结构
摘要:自平衡的树形数据结构是一类特殊的树形数据结构,它们通过自动调整树的结构来保持树的平衡,从而确保查询、插入和删除等操作的时间复杂度保持在对数级别。以下是几种常见的自平衡的树形数据结构: AVL树(Adelson-Velsky和Landis树): AVL树是一种自平衡的二叉搜索树,其中任何节点的两个子树
阅读全文
中序遍历 In-order Traversal
摘要:定义 中序遍历(In-order Traversal)在二叉搜索树(BST)中非常有用,因为它会按照升序的方式访问节点。但在其他类型的树中,这种顺序就不一定了。 示例 下面我会首先解释二叉搜索树的中序遍历,然后用一个图例来说明。 二叉搜索树的中序遍历 在二叉搜索树中,中序遍历会先访问左子树,然后访问
阅读全文
前序遍历Pre-order Traversal
摘要:定义 前序遍历(Pre-order Traversal):首先访问根节点,然后递归地访问左子树,最后递归地访问右子树。 示例 假设我们有以下二叉树图例: 1 / \ 2 3 / \ \ 4 5 6 / \ 7 8 / 9 现在,我们将按照前序遍历的步骤来分析这个二叉树:访问根节点:首先,我们访问根节
阅读全文
层次遍历-Level Order Traversal
摘要:定义 层次遍历(Level Order Traversal):也称为广度优先遍历(Breadth-First Traversal)。它按照层次顺序(从根节点开始,然后是所有子节点,然后是子节点的子节点,依此类推)访问树的节点。 示例 我们可以使用一个二叉树作为例子,因为二叉树是树结构中最简单且最常见
阅读全文
如何设计故障检测和恢复机制来应对脑裂
摘要:设计故障检测和恢复机制以应对脑裂问题,可以从以下几个方面进行考虑:快速故障检测:首先,系统需要能够快速检测到可能引发脑裂的故障,如网络分区、协调者故障等。这可以通过定期的心跳检测、网络状态监控、系统健康状态检查等方式实现。一旦发现故障,系统应立即进入故障处理流程。共享存储Fencing:在分布式系统
阅读全文
主生产计划
摘要:主生产计划(Master Production Schedule,简称MPS)是闭环计划系统的一个部分,其实质是保证销售规划和生产规划对规定的需求(需求什么,需求多少和什么时候需求)与所使用的资源取得一致。MPS考虑了经营规划和销售规划,使生产规划同它们相协调。 主生产计划着眼于销售什么和能够制造什
阅读全文
如何实现分布式系统故障处理策略中的故障检测与隔离
摘要:实现分布式系统故障处理策略中的故障检测与隔离通常涉及以下几个关键步骤: 故障检测: 心跳检测:节点通过定期发送“心跳”信号给其它节点,来表明它仍在运行。如果在指定的时间间隔内没有收到一个节点的心跳,那么这个节点就会被认为是不可用的。 基于租约的机制:与心跳检测类似,基于租约的故障检测机制允许节点在特
阅读全文
容忍能力是容错的能力?
摘要:容忍能力确实与容错能力紧密相关,但两者不完全等同。 容错能力(Fault-Tolerance)主要指的是系统在面对故障或错误时,能够继续提供正常服务或至少保持部分功能的能力。这通常涉及到冗余设计、错误检测和纠正机制等,以确保系统在发生硬件故障、软件错误或其他异常情况时,能够保持稳定运行。 而容忍能力
阅读全文
如何提高系统的容错能力
摘要:要提高系统的容错能力,可以从多个方面入手,以下是一些建议: 多机房部署: 在不同的地理位置建设多个机房,这样可以提高系统的容错能力。当某个机房发生故障时,系统可以自动切换到其他机房,保证业务的连续性。 多机房部署可以减少单点故障的风险,并提高系统的可用性。 采用主从复制技术: 主从复制技术是一种常见
阅读全文
一致性如何度量
摘要:一致性的度量方法取决于具体的上下文和应用场景。以下是几种常见的一致性度量方法: Kappa一致性检验:在统计和数据分析中,Kappa系数被用于衡量两个或多个评分者对同一组对象的评分之间的一致性。Kappa系数的取值范围在0到1之间,值越大表示一致性越高。Kappa一致性检验可以细分为简单Kappa、
阅读全文
什么是分区容忍性(partition tolerence)
摘要:引子 在分布式系统的上下文中,分区容忍性(Partition Tolerance)指系统在面对网络分区时所能表现出的能力和特性。 分区容忍性(Partition Tolerance)通常与一致性(Consistency)和可用性(Availability)一起来讨论和度量分布式系统的问题。分区容忍性
阅读全文
机器学习面试问题-2023面试题库
摘要:1. 为什么要引入机器学习? 最简单的答案是让我们的生活更轻松。在“智能”应用程序的早期,许多系统使用“如果”和“否则”决策的硬编码规则来处理数据或调整用户输入。考虑一个垃圾邮件过滤器,其工作是将相应的传入电子邮件移动到垃圾邮件文件夹。 但是通过机器学习算法,我们可以获得充足的数据信息,以便从数据中
阅读全文
数据结构进阶面试题-2023面试题库
摘要:本文紧接上一篇基础问题,进行相对深入探索 进阶数据结构 24. 什么是二叉树数据结构?二叉树有哪些应用? 二叉树是一种数据结构,用于以允许有效检索和操作的方式组织数据。它是一种数据结构,它使用两个节点(称为叶子和节点)来表示数据。叶子表示数据,节点表示叶子之间的关系。每个节点有两个子节点,称为同级,
阅读全文
数据结构基础面试题-2023面试题库
摘要:基本数据结构 1. 什么是数据结构? 数据结构是在程序中组织数据的一种机械或逻辑方式。数据的组织决定了程序的执行方式。有许多类型的数据结构,每种都有自己的用途。在设计代码时,我们需要特别注意数据的结构方式。如果数据存储效率不高或结构不正确,则代码的整体性能将降低。 2. 为什么要创建数据结构? 数据
阅读全文
什么是数据结构-常用算法快速入门
摘要:抽象 数据结构是在计算机中排列和存储数据以便有效使用它的一种有意义的方式。 本文的范围 说到范围,现在也是放下期望的好时机: 我们从讨论数据结构的类型开始 然后我们简要讨论抽象数据类型 接下来,我们进入标准数据结构操作 探索数据结构的一般优势 最后,解决学习数据结构的重要性 思考 数据结构提供了管理
阅读全文
浙公网安备 33010602011771号