
算法
文章平均质量分 95
算法
Generalzy
这个人很懒,什么都没写!
展开
-
数据过滤器
通过数据签名,我们可以将奇形怪状的数据转换为长度固定的格式!而数据处理常用到的一些概念有:一种将任意长度输入映射为固定长度输出的函数,通常用于快速查找、去重、数据校验等。特点:用途:示例算法:常见哈希算法及对比:用法场景:下面给出摘录出来的牛逼的工业级 Hash 算法(适合高性能/大规模系统):🔸 MurmurHash3🔸 Blake2b🔸 CityHash / FarmHash / HighwayHash 是一种高性能、非加密型哈希算法,由 Yann Collet(@Cyan4973)在 2012原创 2025-04-26 15:58:27 · 1142 阅读 · 0 评论 -
用go实现一个循环队列
在入队和出队的操作中,头尾指针只增加不减小,致使被删除元素的空间永远无法重新利用,因此,尽管队列中实际的元素个数远远小于向量空间的规模,但也可能由于尾指针巳超出向量空间的上界而不能做入队操作,该现象称为假溢出。队列有很多种,按照存储结构划分,有链式队列,循环队列,单向队列,双端队列。在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外,还需要设置头尾两个指针front和rear,分别指示队列头元素及队尾元素的位置。从队列中删除队头元素称为出队,其后继元素成为新的队头元素。原创 2023-09-09 12:12:52 · 585 阅读 · 0 评论 -
golang数据结构与算法学习笔记——基础篇
从日常的排序和搜索,到复杂的数据压缩、图像处理,再到机器学习中的深度学习算法,算法无处不在。在计算机的底层,诸如快速傅里叶变换(FFT)加速信号处理、哈希算法实现高效数据存储和检索,甚至一些全球支付系统的加密技术,都依赖于精巧的算法。第二个方面是 「先进先出原则」:根据队列的定义,最先进入队列的元素在队头,最后进入队列的元素在队尾。后进先出原则:根据栈的定义,每次删除的总是栈中当前的栈顶元素,即最后进入栈的元素。另外,即便是同一个算法,用不同的语言实现,在不同的计算机上运行,所需要的运行时间都不尽相同。原创 2023-07-23 17:36:28 · 484 阅读 · 0 评论 -
B树,B+树,二叉查找树,平衡二叉树,红黑树
B树是一个多路平衡查找树,B树的出现是为了弥合不同的存储级别之间的访问速度上的巨大差异,实现高效的I/O。如果需要查找一个数,首先取根节点,如果它等于要查找的数据,则直接返回,如果小于要查找的数据,则在右子树中继续查找,如果大于要查找的数据,则在左子树中继续查找,也就是二分查找的思想,这样一直递归。由于是弱平衡二叉树,那么在相同的节点情况下,AVL树的高度小于等于红黑树的高度,相对于要求严格的AVL树来说,它的旋转次数少,所以对于插入,删除操作较多的情况下,用红黑树的查找效率会更高一些。原创 2022-04-20 22:37:06 · 689 阅读 · 0 评论 -
golang数据结构与算法学习笔记——进阶篇
我们希望找到一种排序算法,具有高效率、稳定、原地以及正向自适应性等优点。然而,正如其他数据结构和算法一样,没有一种排序算法能够同时满足所有这些条件。在实际应用中,我们需要根据数据的特性来选择合适的排序算法。下图对比了主流排序算法的效率、稳定性、就地性和自适应性等:自适应性:自适应排序的时间复杂度会受输入数据的影响,即最佳时间复杂度、最差时间复杂度、平均时间复杂度并不完全相等。原创 2021-06-09 17:43:02 · 297 阅读 · 0 评论