🦌鹿心雨的小窝
🦌
🏡
首页
📚
博客
🛢
分类
📫
友链
🖼
关于
📖
碎碎念
登 录
注 册
🦌鹿心雨的小窝
Hello, World!
|
博客
博客
KokoroAme 发布于 2025-01-15
【算法学习笔记 有序表 2】用 Rust 实现一个跳表
跳表
rust
算法与数据结构
跳表是一种具有多级随机生成索引的有序链表。跳表由多个有序链表组成,每个链表称为一层。最底层的链表包含所有节点,节点在加入时有概率加入高层的链表中,越高层的链表节点越稀疏,越低层越稠密。通过索引,跳表可以实现 O(logN) 的时间复杂度下进行增删改查操作。同时它实现简单,没有类似平衡树复杂的调整操作。得益于这两点,跳表被广泛应用于各种场景中,例如 Redis、LevelDB。
0
3
KokoroAme 发布于 2025-01-01
【算法学习笔记 有序表 1】用 Rust 实现了一个 AVL 树
AVL 树
rust
算法与数据结构
这篇博客是我在学习 rust 和复习数据结构时的一篇笔记。AVL 树就是平衡二叉搜索树。它的节点左右子树高度相差不超过 1,当超过 1 时,它通过左旋和右旋操作降低树高,保持这一性质,降低平均搜索长度。对 AVL 树而言,插入、查找、删除节点的时间复杂度都能维持在 O(logn),因此适用于处理有序的结构中的增删改查操作。和普通的二叉搜索树相比,它克服了插入有序节点时,退化为链表的问题。
0
106
KokoroAme 发布于 2024-12-05
Leetcode 743 Network Delay Time,单源最短路径问题的解法
Dijkstra 算法
Bellman-Ford 算法
...
算法与数据结构
Leetcode 743 Network Delay Time,在一个网络节点组成的有 n 个点的加权有向图中,返回从给定某一节点 k 出发发送信号,所有节点都能收到信号的耗时,有无法到达的节点则返回 -1。解决单源的最短路问题,如果无负权边,通常采用 Dijkstra 算法,如果有负向边,就采用 Bellm-Ford 算法。
0
90
KokoroAme 发布于 2024-11-30
广义线性模型笔记
广义线性模型
指数分布族
数学
一直都挺好奇广义线性模型是怎么跑起来的。广义线性模型由 Nelder 和 Wed derburn 在 1972 年提出。简单来说,广义线性模型就是使用连接函数,使得可以是非连续、非正态的因变量可以表示为自变量的线性组合。对于线性回归模型,假设变量连续、正态。对于因变量离散、非正态的情况,线性回归模型的假设就得不到满足。而广义线性模型仅要求因变量的分布属于指数分布族,对因变量没有任何的限制。
0
65
KokoroAme 发布于 2024-11-17
Next App Router 模式下,如何同步服务端 Redux 初始状态?
Next App Router
Redux
Next
Next.js 是一个广受欢迎的 React 服务端渲染框架。Next.js 的页面会先在服务端渲染一次,然后把结果传给浏览器,也就是客户端,再在客户端渲染一遍,并且运行客户端特有的逻辑。Redux 在服务端渲染的时候被初始化,然而服务器返回的是只有 HTML 标签的页面,客户端无法获得服务端的状态。
0
166
KokoroAme 发布于 2024-10-28
细节解析 JavaScript 中 bind 函数的模拟实现
JavaScript bind
JavaScript
bind 是一个改变函数 this 指针指向的一个常用函数,经常用在涉及 this 指针的代码中,例如 React 老版本的 Class 组件,或者重写 window 上的函数时。最近搞出了一个很难注意得到的 bug,bind 函数返回的函数中,原函数的属性消失了,导致了一个全局工具函数的失效。后来再去翻看文档发现了一些以前注意的内容。结合文档,这篇博客将在 JS 中实现一下 bind 的功能..
0
105
KokoroAme 发布于 2024-10-05
理解快速傅里叶变换
快速傅立叶变换
算法与数据结构
快速傅立叶变换(Fast Fourier Transform,FFT)是一种离散信号的傅立叶变换的的快速计算方法。在上篇博客复习了一下傅立叶变换的数学推导,这里就回顾一下快速傅立叶变换的实现。在 FFT 中,利用复指数函数的周期性可以把问题进行分治,时间复杂度从 O(n^2) 下降到 O(n log n),这极大加速了 DFT 的计算。
0
66
KokoroAme 发布于 2024-10-01
理解傅里叶变换
傅立叶变换
傅立叶级数
算法与数据结构
数学
傅立叶变换可以将时域上的信号转变为频域上的信号,使用者从而获得感兴趣的变量,在音视频、图像、神经影像等信号处理领域均有广泛的应用。而快速傅里叶变换(Fast Fourier Transform,FFT)是一种离散信号的傅立叶变换的的快速计算方法。傅立叶变换在我之前学习中接触过,基本上每天都在和它打交道,但是一直对它的原理不甚了解,因此趁着工作休息之余,用两篇博客的时间,稍微回顾一下。
0
61
KokoroAme 发布于 2024-07-14
npm link 配合 Vite 插件监听 node_modules,丝滑调试 JS 库
npm link
Vite
在尝试将我的个人博客里面的小工具封装成 JS 库时,开发调试遇到了一点小问题。用 Vite 新建一个项目用来调试本地 JS 库,在使用`npm link`链接,发现一个问题,包中源码修改后,项目开发模式下并没有触发热更新,感觉是 Vite 没有监听 node_modules 文件夹导致的。翻了一下 Vite Github 上的 issue
0
226
KokoroAme 发布于 2024-06-22
源码解析:Fuse.js 是如何实现模糊搜索的?
模糊搜索
Bitap
...
算法与数据结构
JavaScript
最近一直都在用 Fuse.js 来进行表格搜索,有点好奇是怎么实现的,于是就翻了一下源码。Fuse.js 是一个功能强大、轻量级、零依赖关系的 JS 模糊搜索库,适用于前后端各种 JS 项目。Fuse.js 根据匹配度、匹配位置、句子长度的因素,给每个搜索项评分并排序,得到模糊搜索的结果。Fuse.js 的匹配度计算,基于 Bitap 字符串匹配算法实现。Bitap 可以得到匹配中可容忍的错误
0
155
鹿心雨🦌🦌
KokoroAme Blog
一个爱折腾的程序🦌建立的无名小窝
ARTICLE
59
CATEGORY
17
TAG
77
你用英语都写不出来的东西就别指望用代码写了。
lf you can't write it down in English, you can't code it.
——Peter Halpern
编程珠玑 More Programming Pearl
最新博客
最新博客
【算法学习笔记 有序表 2】用 Rust 实现一个跳表
【算法学习笔记 有序表 1】用 Rust 实现了一个 AVL 树
Leetcode 743 Network Delay Time,单源最短路径问题的解法
广义线性模型笔记
Next App Router 模式下,如何同步服务端 Redux 初始状态?
细节解析 JavaScript 中 bind 函数的模拟实现
理解快速傅里叶变换
理解傅里叶变换
npm link 配合 Vite 插件监听 node_modules,丝滑调试 JS 库
源码解析:Fuse.js 是如何实现模糊搜索的?
Tech Stack
Tech Stack
Front-End
Server
鹿心雨🦌🦌
KokoroAme Blog
一个爱折腾的程序🦌建立的无名小窝
ARTICLE
59
CATEGORY
17
TAG
77
你用英语都写不出来的东西就别指望用代码写了。
lf you can't write it down in English, you can't code it.
——Peter Halpern
编程珠玑 More Programming Pearl
粤ICP备2023133136号
🌸 Run