算法
文章平均质量分 94
无心六神通
金融科技系统架构师
展开
-
分布式共识 - Raft 算法
共识是可容错系统中的一个基本问题:即使面对故障,服务器也可以在共享状态上达成一致。共识算法允许一组节点像一个整体一样一起工作,即使其中的一些节点出现故障也能够继续工作下去,其正确性主要是源于复制状态机的性质:一组Server的状态机计算相同状态的副本,即使有一部分的Server宕机了它们仍然能够继续运行。原创 2024-02-12 08:18:41 · 1363 阅读 · 1 评论 -
算法-排序-十大经典
内部排序:数据记录在内存中进行排序。外部排序open in new window:因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。插入排序希尔排序选择排序冒泡排序归并排序快速排序堆排序基数排序等,本文只讲解内部排序算法。图片名词解释:n:数据规模k:“桶” 的个数In-place:占用常数内存,不占用额外内存Out-place:占用额外内存。原创 2024-02-09 09:08:19 · 913 阅读 · 0 评论 -
算法-剑指offer-部分编程题
假设n>=2,第一步有n种跳法:跳1级、跳2级、到跳n级 跳1级,剩下n-1级,则剩下跳法是f(n-1) 跳2级,剩下n-2级,则剩下跳法是f(n-2) ...... 跳n-1级,剩下1级,则剩下跳法是f(1) 跳n级,剩下0级,则剩下跳法是f(0) 所以在n>=2的情况下: f(n)=f(n-1)+f(n-2)+...+f(1) 因为f(n-1)=f(n-2)+f(n-3)+...+f(1) 所以f(n)=2*f(n-1) 又f(1)=1,所以可得。当n为偶数,a^n =(a^n/2)*(a^n/2);原创 2024-02-09 09:07:01 · 796 阅读 · 0 评论 -
算法-链表-常见
node1 节点先跑,node1节点 跑到第 n+1 个节点的时候,node2 节点开始跑.当node1 节点跑到最后一个节点时,node2 节点所在的位置就是第 (L-n ) 个节点(L代表总链表长度,也就是倒数第 n+1 个节点)在第一次遍历中,我们找出列表的长度 L。首先两个节点/指针,一个节点 node1 先开始跑,指针 node1 跑到 k-1 个节点后,另一个节点 node2 开始跑,当 node1 跑到最后时,node2 所指的节点就是倒数第k个节点也就是正数第(L-K+1)个节点。原创 2024-02-09 09:06:01 · 810 阅读 · 0 评论 -
算法-字符串-常见
BM算法也是一种精确字符串匹配算法,它采用从右向左比较的方法,同时应用到了两种启发式规则,即坏字符规则 和好后缀规则 ,来决定向右跳跃的距离。谈到字符串问题,不得不提的就是 KMP 算法,它是用来解决字符串查找的问题,可以在一个字符串(S)中查找一个子串(W)出现的位置。因为“暴力搜索”的方法会反复回溯主串,导致效率低下,而KMP算法可以利用已经部分匹配这个有效信息,保持主串上的指针不回溯,通过修改子串的指针,让模式串尽量地移动到有效的位置。例如: "()()()"的深度是1,"((()))"的深度是3。原创 2024-02-09 09:05:06 · 886 阅读 · 0 评论