6 天前 / cxc_xinconan
响应式是 Vue 的特色,如果你简历里写了 Vue 项目,那基本都会问响应式实现原理。 而且不只是 Vue,状态管理库 Mobx 也是基于响应式实现的。 那响应式是具体怎么实现的呢? 与其空谈原理,不如让我们来手写一个简易版吧。 响应式首先,什么是响应式呢? 响应式就是被观察的数据变化的时候做一系列联动处理。 就像一个社会热点事件,当它有消息更新的时候,各方媒体都会跟进做相关报道。 这里社会热点事件就是被观察的目标。 那在前端框架里,这个被观察的目标是什么呢? 很明显,是状态。 状态一般是多个,会通过对象的方式来组织。
191 天前 / sjf0115
译者 何源(荆杭),阿里云计算平台事业部高级产品专家 前言 本文翻译自 Altinity 针对 ClickHouse 的系列技术文章。面向联机分析处理(OLAP)的开源分析引擎 ClickHouse,因其优良的查询性能,PB 级的数据规模,简单的架构,被国内外公司广泛采用。 阿里云 EMR-OLAP 团队,基于开源 ClickHouse 进行了系列优化,提供了开源 OLAP 分析引擎 ClickHouse 的云上托管服务。EMR ClickHouse 完全兼容开源版本的产品特性,同时提供集群快速部署、集群管理、扩容、缩容和监控告警等云上产品功能,并且在开源的基础上优化了 ClickHouse 的读写性能...
268 天前 / 狂笨的小海马
Redis 的散列键会将一个键和一个散列在数据库里关联起来,并用客户端可以在散列中为任意多个字段(即 field)设置值。 关于散列的命令大概有 16 个,通过散列键,客户端可以把相关联的多项数据存储到同一个散列里,以便对这些数据进行管理,或者针对它们执行批量操作。 HSET 与 HSETNX 很熟悉的两个命令,相信你也能看出来,与字符串中的 SET 与 SETNX 很像。 正如你所想,它们的用户也很类似。 # 为散列中指定字段设置值 HSET key field value [field value ...] 正如字符串 SET 命令一样,HSET 也有以下特性: 如果给定的字段并不存在于散列当中...
320 天前 / 高飞
预计阅读时间:9 分钟这是好久之前的一篇文章学习数据结构的框架思维的修订版。之前那篇文章收到广泛好评,没看过也没关系,这篇文章会涵盖之前的所有内容,并且会举很多代码的实例,谈谈如何使用框架思维,并且给对于算法无从下手的朋友给一点具体可执行的刷题建议。 首先,这里讲的都是普通的数据结构和算法,咱不是搞竞赛的,野路子出生,只解决常规的问题,以面试为最终目标。另外,以下是我个人的经验的总结,没有哪本算法书会写这些东西,所以请读者试着理解我的角度,别纠结于细节问题,因为这篇文章就是对数据结构和算法建立一个框架性的认识。
416 天前 / Silently9527
“吐血整理程序员必读书单:https://github.com/silently9527/ProgrammerBooks 微信公众号:贝塔学 Java ”前言从本篇开始我们将会一起来学习图相关的算法,图算有很多相当实用算法,比如:垃圾回收器的标记清除算法、地图上求路径的最短距离、拓扑排序等。在开始学习这些算法之前我们需要先来了解下图的基本定义,以及使用哪种数据结构来表示一张图,本篇我们先从无向图开始学习。 图的定义图:是有一组顶点和一组能够将两个订单相连组成的。连接两个顶点的边没有方向,这种图称之为无向图。
419 天前 / 雨后天空
Uion-Find 算法在计算机科学中,并查集(英文:Disjoint-set data structure,直译为不交集数据结构)是一种数据结构,用于处理一些不交集(Disjoint sets,一系列没有重复元素的集合)的合并及查询问题。并查集支持如下操作: 查询:查询某个元素属于哪个集合,通常是返回集合内的一个“代表元素”。这个操作是为了判断两个元素是否在同一个集合之中。合并:将两个集合合并为一个。添加:添加一个新集合,其中有一个新元素。添加操作不如查询和合并操作重要,常常被忽略。
429 天前 / 三分恶
1、安装 RedisRedis6.0 在 2020 年已经发布,所以我们安装 Redis3.0。 1.1、在 Linux 上安装 Redis 我们在 CentOS 上安装 Redis。常见的的有三种安装方式: yum/apt 软件管理软件安装源码的方式进行安装容器化安装我们这里选择第二种方式: 1)下载 Redis 指定版本的源码压缩包到当前目录 wgethttp://download.redis.io/releases/redis-3.0.7.tar.gz 2)解压缩 Redis 源码压缩包 tarxzfredis-3.0.7.tar.gz 3)建立一个 redis 目录的软连接,指向 redis-3.0.7ln-sredis-3.0.7redis 4)进入 redis 目录cdredis 5)编译(编译之前确保操作系统已经安装 gcc)...
579 天前 / bigsai
先看效果图 ( 在线电脑尝试地址 http://biggsai.com/maze.html): 起因 又到深夜了,我按照以往在 公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 超越妹妹时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个小游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析如果用数据结构与算法造出东西来呢? 什么东西简单容易呢?我百度一下,我靠,这个鸟游戏原来不好搞啊,得接触一堆不熟悉的东西,搞不来搞不来。
624 天前 / Yew_
堆排序 堆排序是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆的性质:即子节点的键值或索引总是小于(或者大于)它的父节点,堆排序的时间复杂度为 O(nlogn)。( 来自维基百科) 什么是堆 堆是一种特殊的完全二叉树,它的性质为:任意节点大于等于或者小于等于它的左右节点。如果任意节点大于等于它的左右节点,此堆称为最大堆;反之,任意节点小于等于它的左右节点,此堆称为最小堆。
625 天前 / Yew_
快速排序在实际应用中使用广泛,效果也高。快排使用的是分治策略,一组序列基于某一个基准值分成两个大小的子序列,递归排序子序列,最终得到有序的序列。快排的平均时间复杂度为 O(nlogn)。 算法的实现步骤: 1. 在序列中挑选一个基准值,我们可以默认第一个数为基准值 2. 从两边的数值跟基准值作对比,数值小的放在基准值左边,数值大的放在基准值右边 3. 递归将小于基准值的子序列和大于基准值的子序列排序 例子: 乱序序列:4,3,9,7,5,6,8,1 圆圈 1:原始序列 圆圈 2:以第一个数 4 为基准值 圆圈 3:分成两个子序列,3、1 小于基准值 4...
645 天前 / 沉默王二
前几天和丙弟交流,他说我们写作的人都是在不停地燃烧自己,所以需要不停地补充燃料。对于他的观点,我不能再苟同了——所以我开始狂补计算机方面的基础知识,这其中就包括我相对薄弱的数据结构。 百度百科对数据结构的定义是:相互之间存在一种或多种特定关系的数据元素的集合。定义很抽象,需要大声地朗读几遍,才有点感觉。怎么让这种感觉来得更强烈,更亲切一些呢?我来列举一下常见的 8 种数据结构,数组、链表、栈、队列、树、堆、图、哈希表。
677 天前 / Yew_
归并排序的核心思想是使用分治的策略来进行排序。分治是将大问题分成一些小问题,小问题解决后在合并在一起。 我们来看一下这一排数据:9,4,5,1,2,7,3,8,6,0。算法流程大概就是以下图所示,将数组拆分,然后每一个小数组进行排序合并。 再看一下局部的两个小数组如何进行合并的,进行合并的两个红色数组里面的数已经是有序的,上图黑色框部分 申请一个临时数据,存放排序后的结果。 第一行:红色左边数组跟红色右边数组进行对比,小的就放入黑色的临时数组中 第二行:进行下一个数的对比...
679 天前 / 互联网平头哥
Redis 数据库虽然一直都在使用,但是对其内部存储结构之类的,都没有研究过,哪怕是面试的时候都没有准备过这方面的东西。最近在看一门网课,里面有讲到过这一块的内容,结合了《Redis 设计与实现》这本书,粗略的整理了 Redis 的内部存储结构。就是下面这张图。 对于 Redis 数据库,绝大多数人都知道有每个 Redis 实例有 16 个数据库,但是对于内部是怎么扭转的大部分人可能不太清楚,反正我是不清楚。整体流程差不多就是上图表示的那样吧,知识面有限,难免存在缺漏,凑合着看吧。