
数据结构与算法
文章平均质量分 57
踏着阳光
这个作者很懒,什么都没留下…
展开
-
js 平行上下级关系的数据转换成树形结构算法
const list = [ {"id":6,"departmentId":1,"name":"a","name_en":null,"parentid":0,"order":65535,}, {"id":7,"departmentId":2,"name":"b","name_en":null,"parentid":1,"order":65535,"isDelete":0}, {"id":8,"departmentId":4,"name":"c","name_en":null,"parentid.原创 2020-12-28 11:57:27 · 588 阅读 · 0 评论 -
node 桶排序
实现思路与步骤思路设置固定空桶数 将数据放到对应的空桶中 将每个不为空的桶进行排序 拼接不为空的桶中的数据,得到结果步骤演示假设一组数据(20长度)为[63,157,189,51,101,47,141,121,157,156,194,117,98,139,67,133,181,13,28,109] 现在需要按5个分桶,进行桶排序,实现步骤如下: 找到数组中的最大值194和最小值13,然后根据桶数为5,计算出每个桶中的数据范围为(194-13+1)/5=36.4 遍历转载 2020-12-21 00:34:25 · 222 阅读 · 0 评论 -
解决缓存穿透:布隆过滤器
https://blog.csdn.net/liebert/article/details/79737042https://blog.csdn.net/thlzjfefe/article/details/106056326原创 2020-08-18 12:00:21 · 201 阅读 · 0 评论 -
分布式系统中一致性哈希算法
业务场景近年来B2C、O2O等商业概念的提出和移动端的发展,使得分布式系统流行了起来。分布式系统相对于单系统,解决了流量大、系统高可用和高容错等问题。功能强大也意味着实现起来需要更多技术的支持。例如系统访问层的负载均衡,缓存层的多实例主从复制备份,数据层的分库分表等。我们以负载均衡为例,常见的负载均衡方法有很多,但是它们的优缺点也都很明显:随机访问策略。系统随机访问,缺点:可能造成服务器负载压力不均衡,俗话讲就是撑的撑死,饿的饿死。 轮询策略。请求均匀分配,如果服务器有性能差异,则无法实现性能转载 2020-07-29 21:59:34 · 248 阅读 · 0 评论 -
js 字典与Map对象
字典是一种以键-值对形式存储数据的数据结构,像电话簿里面的电话和号码一样,本文字典的的基础类为Array.字典实现:function Dictionary() { this.datastore = []; this.add = add; this.find = find; this.remove = remove; this.showAll =...原创 2019-04-22 18:39:14 · 9716 阅读 · 0 评论 -
js 集合
并集:将两个集合中的成员进行合并,得到一个新的集合交集:两个集合共同存在的成员组成一个新的集合补集:属于一个集合而不属于另一个集合的成员组成的集合function Set() { this.dataStore = []; this.add = add; this.remove = remove; this.show = show; this.c...原创 2019-04-11 17:27:31 · 4517 阅读 · 0 评论 -
js 插入排序
插入排序有两个循环,外循环数组元素挨个移动,而内循环和外循环选中的元素进行比较。如果外循环中选中的元素比内循环选中的元素要小,那么数组整体会向右移动,为内循环的这个元素腾出位置。(将较大数组向右移动,为数组较小元素腾出位置。)function CArray(numElements) { this.dataStore = []; this.pos = 0; this.n...原创 2019-04-11 16:57:07 · 648 阅读 · 0 评论 -
js 选择排序
第一个元素和其他元素进行比较,检查完所有元素后,最小元素会被放到数组的第一个位置,然后算法会从第二个位置继续。function CArray(numElements) { this.dataStore = []; this.pos = 0; this.numElements = numElements; this.insert = insert; ...原创 2019-04-11 16:25:00 · 347 阅读 · 0 评论 -
js 冒泡排序
如果数字按升序排序,比较相邻数据,如果左侧小于右侧,则交换数组,最大的数值在相邻比较中被漂浮到最右边。像气泡一样从数组的一端漂浮到另一端。function CArray(numElements) { this.dataStore = []; this.pos = 0; this.numElements = numElements; this.inser...原创 2019-04-11 15:51:07 · 172 阅读 · 0 评论