算法和数据结构
曾记花开不记年
go, php,erlang,c/c++,linux
展开
-
水平分表 和 垂直分表
水平分表:一个表的数据划分到不同的数据库,两个数据库的表结构一样。垂直分表:按照业务把不同的数据放到不同的库中原创 2016-04-29 09:12:55 · 625 阅读 · 0 评论 -
[算法]负载均衡
1.随机 把负载随机分配到可用的服务器上2.顺序 按顺序把负载平均分配3.加权 对顺序的优化 比如某台服务器处理能力很强 那么可以让它处理更多的负载4.动态 实时 或者 定时监控服务器状态,动态的把负载放在压力最小的服务器上原创 2016-05-04 10:04:06 · 181 阅读 · 0 评论 -
查找算法
1. 顺序查找a) 算法简单,适应面广,稳定算法b) 平均查找长度比较大,当n比较大时,查找效率会很低,时间复杂度为O(n)2. 折半查找法a) 针对有序的序列表,不稳定算法b) 查找速度快,时间复杂度是O(log2n)3 分块查找a) 也是针对有序表,不原创 2016-05-06 13:48:35 · 231 阅读 · 0 评论 -
排序算法
排序分类 平均时间 时间复杂度 辅助存储空间简单排序 O(n2) O(n2) O(1)快速排序 O(nlog2n) O(nlog2n) O(nlog2n)堆排序 O(nlog2n) O(nlog2n) O(1)归并排序原创 2016-05-06 13:48:57 · 211 阅读 · 0 评论 -
客户端 服务端 时间校正
tc1:客户端发送时间戳tc2:客户端接受时间戳ts1:服务端接收时间戳ts2:服务端发送时间戳原理:tc + diff = ts公式:tc1+ diff = ts1 - delaydelay = (tc2 - tc1)/2 - (ts2 - ts1)原创 2016-05-31 09:35:13 · 985 阅读 · 0 评论 -
[算法] 生成唯一id
生成唯一id 主要有单表唯一id,多表唯一id,集群唯一id,不连续id 等场景可以使用一下方式:1.使用数据库自增Id2.在全局使用创建maxid表,每次插入都查询并更 新该表3.可以使用全局唯一表4.服务器编码+表自增id合成唯一标识5.维护一个id池,程序启动的时候,生成id池,使用id的时候,从id池中随机取出一个,并从id池中删除原创 2016-04-24 20:21:21 · 2657 阅读 · 0 评论