Avatar notebook default
10篇文章 · 10688字 · 1人关注
  • 哈希算法及其应用

    1. 什么是哈希算法? 将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制值串就是...

  • 散列表(下):为什么散列表和链表经常会一起使用?

    散列表虽然支持高效的数据插入、删除和查找操作,但是其中的数据都是通过散列函数打乱之后无规律的。也就是说,它无法按照某种顺序快速地遍历。如果想有序...

  • 散列表(中):如何打造一个工业级的散列表?

    工业级的散列表应该具有哪些特性? 支持快速的查询、插入、删除操作; 内存占用合理,不能浪费过多的内存空间; 性能稳定,极端情况下,散列表的性能也...

  • 散列表(上):单词拼写检查功能如何实现

    1. 散列思想 散列表利用的就是数组支持按照下标随机访问的时候,时间复杂度是 O(1) 的特性。通过散列函数把元素的键值映射为下标,然后将数据存...

  • 递归:简洁高效的编程技巧

    1. 如何理解递归? 递归是一种应用非常广泛的编程技巧,比如 DFS 深度优先搜索、前中后序二叉树遍历等都是使用递归。 一个递归求解问题的分解过...

  • 队列在有限资源池中的应用

    1. 什么是队列? 队列的特点是先进先出,有两个基本操作:入队(enqueue),放一个数据到队列尾部;出队(dequeue),从队列头部取一个...

  • 利用栈实现浏览器的前进后退功能

    1. 什么是栈? 栈的特点是后进先出,是一种“操作受限”的线性表,只允许在一端插入和删除。当某个数据集合只涉及在一端插入和删除数据,并且满足后进...

  • 链表(下)写出正确的链表代码的6个技巧

    技巧一:理解指针或引用的含义 指针或引用存储的是对象的内存地址。将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针。 p->next=q...

  • 链表(上)实现 LRU 缓存淘汰算法

    经典的链表应用场景就是 LRU 缓存淘汰算法。 1. 链表结构 数组需要一块连续的内存空间来存储,对内存的要求比较高。而链表不需要,它通过“指针...

文集作者