
算法
文章平均质量分 54
有个人神神叨叨
这个作者很懒,什么都没留下…
展开
-
逆波兰表达式的思考与JAVA实现
最近在研究一个配置解析相关功能, 解析是针对一些规则进行, 考虑到规则的多样性,准备采用逆波兰表达式来进行拆解,然后再单独进行原子化处理。 上面说的规则其实就是一个公式,公式可以分为两部分: 运算量 运算符 运算量比较号理解, 就是A+B+C公式里的ABC,运算符相对复杂一些,对于数学四则运算来说就是+、-、*、/ ,其实如果拓展一下, 运算符可以是现有的逻辑运算符号比如:&、|、!、^ 等,也可以自定义一个特殊含义的运算符,比如说 = 代表两边都需要成立,>代表左边成立,右边也需要成立,原创 2021-08-03 09:41:37 · 232 阅读 · 3 评论 -
归并排序算法
理解归并排序 归并排序主要有两点,递归、合并 这点与诸如mapreduce等分而治之的组件思想非常类似,先拆解任务,对子任务处理完成后再合并结果,对于排序这个场景来说,可以先考虑几个问题: 1. 子任务多具体逻辑是什么 任务当然是为了排序,排序要很多方式,快排、冒泡等,我们目标是选择一个“稳定排序”、“时间复杂度又快又稳,最高、最差、平均都是O(logn)”,先不限制对空间复杂度的要求,我们先思考一下,如果需要对两个有序数组进行排序,它的时间复杂度是O(n),空间复杂度是O(n),代码如下,接下来考虑第原创 2021-06-30 23:02:13 · 314 阅读 · 3 评论