1.需求 业务中需要实现在两个集合中搜索数据,并返回交集。 用SQL的伪代码可以描述如下: 2.现有存储格式 业务使用了redis的有序集合(sorted set)来存储数据: 常规的思路是: 3.lua实现 看了一下redis的lua脚本功能,可以完全在redis服务器端完成: lua like ...
分类:
数据库 时间:
2020-05-09 18:47:01
阅读次数:
73
一、设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。 答: 分析题目可知,我们需要先查到x需要在顺序表va中插入的位置。假设我们插入在顺序表中的位置为va.elem[i+1]。这里我们需要满足x的值大于等于va.elem[i]且小于va.elem[i+ ...
分类:
编程语言 时间:
2020-05-05 20:25:10
阅读次数:
105
[TOC] 0.PTA得分截图 1.本周学习总结 1.1 总结图内容 1.图存储结构 1.2 谈谈你对图的认识及学习体会 2.阅读代码 2.1 题目及解题代码 题目 代码 2.1.1 该题的设计思路 2.1.2 该题的伪代码 2.1.3 运行结果 2.1.4 分析该题目解题优势及难点 2.2 题目及 ...
分类:
其他好文 时间:
2020-05-05 19:43:11
阅读次数:
64
序列拆包 unpack, 组包 package, 队列 deque 应用. ...
分类:
编程语言 时间:
2020-05-05 00:27:06
阅读次数:
74
最坏时间复杂度O(n2),最好和平均是O(n*log2n) 伪代码: 1 QuickSort(A,low,high) 2 if(low<high) 3 index = Partition(A,low,high) 4 QuickSort(A,low,index-1) 5 QuickSort(A,ind ...
分类:
编程语言 时间:
2020-04-30 19:32:36
阅读次数:
75
归并排序 归并排序算法的核心就是 “归并”,将两个有序的数列合并,形成更大的有序数组。 归并排序的原理 上面说了,归并排序的核心就是“归并”。如果排序一个数组,那么将数组从中间分成前后两部分,对前后两部分分别进行排序,然后再将排序好的合并在一起,那么这样整个数组就会成为更大的有序数组。例如下面示图: ...
分类:
编程语言 时间:
2020-04-30 19:04:57
阅读次数:
65
if else 是我们写代码时,使用频率最高的关键词之一,然而有时过多的 if else 会让我们感到脑壳疼,例如下面这个伪代码: 是不是很奔溃?虽然他是伪代码,并且看起来也很夸张,但在现实中,当我们无数次 review 别人代码时,都会发现类似的场景,那么我们本文就来详细聊聊,有没有什么方法可以让 ...
分类:
其他好文 时间:
2020-04-29 18:47:47
阅读次数:
49
分布式锁简介: 分布式锁是控制分布式系统或不同系统之间共同访问共享资源的一种锁实现。 在集群架构中,多个JVM虚拟机之间为了保证数据的一致性 ,所以引进了分布式锁的的概念。 分布式锁的设计要求 1.在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行 2.高可用的获取锁与释放锁 3.高 ...
分类:
其他好文 时间:
2020-04-29 15:03:15
阅读次数:
59
MyBatis编程式开发 MyBatis编程式开发步骤 1. MyBatis和MySQL Jar包依赖 2. 全局配置文件mybatis config.xml 3. 映射器Mapper.xml 4. Mapper接口 编程式开发伪代码 MyBatis编程式开发核心对象 1. SqlSessionFa ...
分类:
其他好文 时间:
2020-04-26 19:05:28
阅读次数:
70
9个小技巧让你的 if else看起来更优雅 if else 是我们写代码时,使用频率最高的关键词之一,然而有时过多的 if else 会让我们感到脑壳疼,例如下面这个伪代码: 我们本文提供了 9 种方法来解决掉那些“烦人”的 if else,一起来看吧。 1.使用 return 我们使用 retu ...
分类:
其他好文 时间:
2020-04-22 21:31:00
阅读次数:
127