
数据结构
文章平均质量分 87
本专栏收纳对库中数据结构的说明以及手撕模拟
丁世光
有幸成为长河的一粒沙
展开
-
O(时间复杂度)
strchr函数作用是在一个字符串里查找一个字符,那么就有可能第一次找到,也有可能最后一次找到,那如何计算时间复杂度呢,请你记住:时间复杂度的计算,是保守计算,即计算最坏的情况,例如这个可能末尾才找到,复杂度就是O(N),N是字符串长度。冒泡排序第一趟:执行比较语句n-1次,确定末位的数字(也有可能没有发生交换位置,这是最优的情况,复杂度为O(N) )所谓的时间维度上的复杂其实就是:2N + 10, 而对于这个表达式影响最大的是N,常数可以全部忽略。很容易数出来:F(N)= N^2 + 2N + 10;原创 2023-07-31 20:49:23 · 74 阅读 · 0 评论 -
BloomFilter(布隆过滤器)
本文详细介绍了哈希切分的使用原创 2024-08-14 18:58:53 · 748 阅读 · 0 评论 -
HashTable(哈希表)
哈希表底层实现了unordered_map和unordered_set,是在C++11中新加入的头文件。原创 2024-08-08 10:59:42 · 1107 阅读 · 0 评论 -
RedBlackTree(红黑树)
极端情况下,最短路径都是黑色结点,不存在红色结点,最长路径是一黑一红的黑红相间,但是,一棵红黑树不一定存在最长路径和最短路径,也有可能是平衡的。且插入结点的grandfather结点一定是黑色(在插入结点之前的树一定是红黑树,说明不存在连续的红色结点)。和情况一不同的是,情况二经过旋转+变色,无论是p变为黑色结点还是cur变为黑色结点,都不需要再向上处理。插入新结点的颜色必须是红色,如果插入新节点的颜色是黑色,则大概率会违反。一个红色结点的孩子必然是黑色,一个黑色结点的孩子可以是红色也可以是黑色。原创 2024-07-13 11:28:39 · 731 阅读 · 0 评论 -
AVLTree(平衡二叉树)
相比BinarySearchTreeNode,AVL树的结点引入平衡因子 = 右子树高度 - 左子树高度,并且多加了指向父亲的指针。原创 2024-07-10 16:40:21 · 1127 阅读 · 0 评论 -
BST(二叉搜索树)
本文详细结束了数据结构中的二叉搜索树,包括插入删除的代码实现原创 2024-07-05 11:36:10 · 835 阅读 · 0 评论 -
Heap(数组堆)
本文详细介绍了底层使用数组结构实现的堆,以及重要的堆排序和TopK问题原创 2023-09-17 10:11:01 · 155 阅读 · 0 评论 -
SingleListTable(单链表)
本文是手撕单链表的代码原创 2023-08-06 12:12:45 · 78 阅读 · 0 评论