算法与数据结构
文章平均质量分 93
算法与数据结构
sp42a
What the web can be
展开
-
語言文法淺淺談
想要撰寫程式碼,我們可以試著自行構造語言,要如何著手呢?關鍵在於文法的設計,事實上,如果在程式開發過程中,我們曾訂定數學公式與規則表示式的經驗,就已經涉及語言的定義转载 2022-05-23 11:32:12 · 173 阅读 · 0 评论 -
如果你看不懂KMP算法,那就看一看这篇文章( 绝对原创,绝对通俗易懂)
KMP算法,俗称“看毛片”算法,是字符串匹配中的很强大的一个算法,不过,对于初学者来说,要弄懂它确实不易。整个寒假,因为家里没有网,为了理解这个算法,那可是花了九牛二虎之力!不过,现在我基本上对这个算法理解算是比较透彻了!特写此文与大家分享分享!转载 2022-05-21 17:11:57 · 2260 阅读 · 0 评论 -
Java 中 BitSet
Java 中 BitSet 就是“位图”数据结构,根据“位图”的语义,数据的存在性可以使用 bit 位上的1或0来表示;一个 bit 具有2个值:0和1,正好可以用来表示 false 和 true。对于判断“数据是否存在”的场景,我们通常使用 HashMap 来存储,不过 hashmap 这个数据结构 Key 和 Value 的保存需要消耗较多的内存,不适合保存较多的数据,即大数据场景转载 2022-04-25 23:50:39 · 7749 阅读 · 2 评论 -
基于 BitMap 思想的标签框架
自乐高搭建系统在活动落地页的搭建中推广之后,搭建系统的落地页和模块数量就迅速增长。但却并没有一个入口可以帮助研发迅速的统计线上页面和页面中各模块的使用情况,无法对一些可能存在性能风险的页面进行跟踪(部分模块的特性导致该模块无法静态化,可能存在性能风险)。因此需要一个 线上页面和模块的统计解决方案用于解决此类数据统计问题。转载 2022-04-20 15:38:15 · 829 阅读 · 2 评论 -
轻量级权限系统全真做法(一)
之前做的权限系统 too old 了,重构之,于是就有了本文的全真开发过程。原创 2022-04-16 13:52:26 · 582 阅读 · 0 评论 -
AJ 组件库之通用数据字典 DataDict
数据字典(Data Dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。数据字典在系统也是必备的组件,对此我们想想要怎么做原创 2022-03-28 18:56:33 · 2594 阅读 · 0 评论 -
TypeScript 玩转二叉树
首先把普通树与二叉树(Binary Tree)区别开来。普通树能直观地反映树状结构的数据以及它们之间的关系,和我们普通认知的树那样子的差不多,例如文件夹啊、分类啊、行政管理门类啊、族谱啊之类。而二叉树,虽然也有个“树”字,但更多的是为提高排序、搜索、插入、删除速度而准备的那么一种数据结构。如果要用二叉树去展示树状结构,不是不行,它也可以从普通树转换为二叉树,但是那样的话会很别扭和不直观,不便于理解。原创 2021-04-22 13:43:19 · 748 阅读 · 2 评论 -
AJAXJS 框架用到的核心算法
做了那么多年,我通常还是被认为是一个“厉害”的前端,——那说明我一直在原地踏步,没有进步:(。难道就不能突破“全栈”的天花板吗?我想了想,其实是大家没有关注我另一面后端的缘故,后端也是干活的满满的。其实同行交流呢,都逃不过层层“鄙视链”的影响,说这个工具、那个框架,一旦不是自己的心头好,或者存在信息不对称的地方,立马否定对方。所以呢,为避免这种情况发生,谈一些有点“技术深度”而不是泛泛而谈的表面东西,就有所必要了,最好能拉高一些门槛的。比如谈“算法”就是一个比较好的例子了,难怪一般面试都会考算法题。原创 2021-04-12 11:19:08 · 390 阅读 · 2 评论 -
权限设计算法基础
权限管理在一个系统中是不可或缺的,总的来说还是一个数学的问题。最笨的方法之前这个系统的权限管理是通过配置文件来处理的,大概流程是这样的,把用户分成多个用户组,然后每个用户组对应着多个用户的 id,每次访问页面的时候,都会读取这个配置文件的信息,判断登录用户的 id 属于哪个用户组,然后在页面判断这个用户组是否有访问这个链接的权限。配置文件的格式是这样的:{"adm" : [1,2,34], "dev" : [5,6,1]}这样会带来什么问题呢?有以下几个:权限管理混乱,一个用户 id 可能会在多个权原创 2020-07-23 10:25:41 · 946 阅读 · 1 评论 -
SQL 双亲节点查找所有子节点
怎么保存树状结构的数据呢?在 SQL 中常用的是双亲节点法(parent id 表示父节点)。假设当前欲获取某一节点下所有子节点,该怎么做呢?如果使用程序(Java/PHP)递归调用,那么将反复调用数据库,效率之低可想而知。于是我们希望在数据库的层面就可以完成,——该怎么做呢?...原创 2016-05-02 21:18:11 · 10704 阅读 · 2 评论 -
通过“单键锁配置法”实现访问控制
大家的权限是怎么做的呢?这里为大家介绍一个简单的权限管理方法。访问控制主要是指按照用户身份和对应的权限来限制用户实施平台资源的使用和控制。通过指定不同的访问策略来控制用户对资源的访问。访问控制保障合法用户访问和授权使用特定的资源,防止非法主体或操作者对平台资源进行非授权的访问。用户组包含一个或多个用户,它拥有特定的操作权限。一般情况下,用户会被分配不同的用户组中,而不是用户直接对应操作权限...原创 2017-07-18 17:22:17 · 884 阅读 · 0 评论 -
用 JSON 表现树的结构兼谈队列、堆栈的练习(一)
接触 JSON 的人都知道,JSON 可通过 K/V(Key/Value) 结构很直观地表现一棵树,因为 V 可以“包含”另外一个 K/V 从而不断嵌套下去形成“树状”的结构。但 V 不一定必须为另外一个 K/V,而是可以为 Array 数组。数组中由可以“包含”更多的 K/V 或者又是数组类型——也是可以的。如此反复下去,可以形成层数很深的一棵树。原创 2017-08-02 11:05:22 · 4772 阅读 · 0 评论 -
用 JSON 表现树的结构兼谈队列、堆栈的练习(二)
查找,又叫作搜索 search。查找跟遍历的概念不同,遍历是全部的节点都要走一遍,而查找,找到目标节点就立刻返回,不会继续遍历了。当然,如果什么都没查找到,就是一次完整的遍历过程了。原创 2017-08-03 23:34:45 · 1785 阅读 · 0 评论 -
大家都懂的 JSON 解析器原理(一)简介 & 低配版入门
没学过编译原理,做一个 JSON 解析器难吗?——难!是不是就不能“迎难而上”呢?——不是!越是难的越是一个挑战!——笔者这里尝试通过通俗易懂的行文为大家介绍一下 JSON 解析器,到底是如何被解析成为 Java 里面“可以理解的”对象。前面的铺垫可能比较长,但请尽量不要跳过,因为那都是基础,尤其对于我们非科班来说,应要恶补。原创 2017-08-13 14:04:27 · 6391 阅读 · 1 评论 -
白话 LRU 缓存及链表的数据结构讲解(一)
阅读前提:知道缓存(cache)的概念和 Java 数据结构。为了提高性能和减少不必要的重复读取,人们提出了缓存的概念。相当于原本的数据,缓存的体量肯定是小的,而且是非常的少。于是就有缓存大小的概念,毕竟我们不可能把所有已经读取的数据都放在缓存里,缓存大小是固定的。怎么决定哪些数据放在缓存里面,当大小到达上限后,又怎么淘汰(或替换)缓存不需要的数据呢?那就是一个策略的问题——通常比较简单的做法是...原创 2019-05-23 22:38:46 · 552 阅读 · 0 评论 -
白话 LRU 缓存及链表的数据结构讲解(二)
问题的讨论前文讲述了数组、单链表来实现缓存的数据结构,一步一步地反映出 LRU 是如何改进的。至今我们没有放下改进的脚步。在上一例单链表中遇到的一个问题是,提供的 T 为单一记录值,无法处理 Key/Value 结构。通过百度,我们找到一仁兄的资源,比较不错,解决了该该问题,并且单链表的思路更上例不一样,更为简洁。public class LRUCache_2<K, V> { i...原创 2019-05-24 12:25:24 · 379 阅读 · 0 评论 -
白话 LRU 缓存及链表的数据结构讲解(三)
双向链表链表的作用就是按照访问的实际顺序排序,无论单链表或双链表都如此。我们在单链表的例子看到,维护单链表通常离不开从头部节点开始遍历的操作,尽管有许多巧妙的优化办法,但是只要从链表中查找某个元素(随机访问),必然还是离不开遍历操作。有鉴于此,我们希望可以常数时间内(O(1))随机访问元素,这样就很容易想到 HashMap 了。另外,有人问,直接用 HashMap 不行么?HashMap 本身无...原创 2019-05-24 15:34:56 · 833 阅读 · 0 评论 -
π-演算十三问 FAQ on π-Calculus
https://www.cs.cmu.edu/~wing/publications/Wing02a.pdfπ-演算十三问 FAQ on π-CalculusJeannette M. WingVisiting Researcher, Microsoft ResearchProfessor of Computer Science, Carnegie Mellon University27 D...翻译 2019-06-11 14:43:04 · 2939 阅读 · 0 评论