摘要: 思路分析: 归并排序是建立在归并操作的基础上,同样也是利用了分治法来进行解答. 作为一种典型的分而治之思想的算法应用, 归并排序实现两种方法: 自上而下的递归 自下而上的迭代(所有递归都可以使用迭代重写) 首先申请空间, 设定两个指针,位于两个排序好的序列的初始位置, 比较两个序列的值然后放入最终序 阅读全文
posted @ 2020-04-18 23:43 Coding-Liu 阅读(165) 评论(0) 推荐(0)
摘要: 思路分析: 快速排序是实现应用中非常常用的一种算法, 时间复杂度为O(nlongn). 快速排序利用分治法, 随机选取一个point值, 然后把小于point的放在左边, 把大于point的放在右边, 经过这样一次操作, 左边都小于point, 右边都大于point. 然后分别对point左边和右边 阅读全文
posted @ 2020-04-18 23:17 Coding-Liu 阅读(89) 评论(0) 推荐(0)
摘要: 思路分析: 插入排序是默认第一个元素为最小值(或最大值), 然后将后面的数依次与前面进行比较, 如果小于就交换位置 代码: public class Insert { public void Sort(int[] arrays){ for(int i = 1; i < arrays.length; 阅读全文
posted @ 2020-04-18 22:48 Coding-Liu 阅读(109) 评论(0) 推荐(0)
摘要: 节点类型与Watcher是重点, 很多的应用场景都可以从这些特性发出考虑: 临时节点 持久节点 顺序节点 当需要设计一个系统, 需要考虑上面的两点以及每个节点可以存储少量的数据 统一命名服务: 在zookeeper中, 每一个数据节点都能够维护一份子节点的顺序序列, 当客户端对其创建一个顺序子节点的 阅读全文
posted @ 2020-04-18 21:46 Coding-Liu 阅读(97) 评论(0) 推荐(0)
摘要: 成员: leader(接受所有的事务请求) follower(历史事务集合) observer(不参与过半选举,提高读性能) ZAB协议: 在ZAB协议中,每个事务都有一个编号ZXID(一个64位的数字),ZXID由两部分组成,高32位是epoch,低32位是递增计数器 epoch: 选举周期 计数 阅读全文
posted @ 2020-04-18 20:57 Coding-Liu 阅读(186) 评论(0) 推荐(0)
摘要: Paxos有三个成员: Proposer:提案的提出者 Acceptor:提案的接受者,批准是否同意 Learner:Accepter告诉Learner哪个提案被选定,那么Learner就学习这个提案的value 生成提案: 1,proposer生成一个提案Mn,然后向某个Accepter集合成员发 阅读全文
posted @ 2020-04-18 15:39 Coding-Liu 阅读(189) 评论(0) 推荐(0)
摘要: 介绍MySQL两阶段提交之前,先介绍一下Redo Log 和 Binlog redo log: 在MySQL中如果每次更新都需要写进磁盘,然后磁盘也要找到那条记录,然后在更新,整个过程IO成本、查找成本都很高,因此引入了redo log。这里用到了MySQL中的WAL技术,Write-Ahead L 阅读全文
posted @ 2020-04-18 14:27 Coding-Liu 阅读(3643) 评论(0) 推荐(0)
摘要: zookeeper特性: 顺序一致性,客户端发起的事务请求会严格按照其发起顺序被应用到zookeeper中,用队列维护 原子性,事务请求的应用情况在集群中所有机器上是一致的,要么全部成功,要么全部不成功 单一视图,client无论连接到哪个server,数据视图都是一致的 实时性,在一定时间范围内, 阅读全文
posted @ 2020-04-18 12:41 Coding-Liu 阅读(154) 评论(0) 推荐(0)