基础算法
文章平均质量分 70
付少华
这个作者很懒,什么都没留下…
展开
-
算法复杂度 O(1),O(n),O(logn),O(nlogn)的区别
时间复杂度是指执行这个算法所需要的计算工作量空间复杂度是指这个算法所需要的内存空间原创 2022-12-28 17:20:01 · 2178 阅读 · 0 评论 -
go 语言实现二叉树 前序遍历 中序遍历 后序遍历
树的定义树(Tree) 是 n(n>=0) 个结点的有限集, n=0 时称为空树, 在任意一颗非空树当中,有且只有一个特定的称为根(Root) 的结点当n>1时, 其余结点可分为 m(m>0) 个互不相交的优先集 T1 T2 … Tm, 其余每一个集合本身又是一棵树, 并且称为根的子树 (SubTree)特别强调两点 :n>0时, 根节点是位移的, 不可能存在多个根节点当m>0时, 子树的个数并没有限制, 但他们一定是互不相交的, 像下图的两个结构就不符原创 2020-11-13 23:19:46 · 717 阅读 · 0 评论 -
数据结构——HashMap
HahsMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry(入口)这些键值对(Entry)分散在一个数组中,这个数组就是HashMap的主干HahsMap数组每一个元素初始值都是Null对于HashMap,我们最常用的方法:Get和PutPut方法的原理:调用 Put 方法的时候发生了什么呢?比如调用 hashMap.put(“apple”, 0) ,插入一个Key为“apple”的元素。这时候我们需要利用一个哈希函数来确定Entry的插入位置(index):.原创 2020-11-09 00:00:34 · 678 阅读 · 0 评论 -
hash表解析
概念hash表是一种以键值对(key-indexd)存储数据的结构,我们只要输入待查找的值即key,就可以查找到其对应的值哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速的访问任意键的值,这是对于简单键的情况,我们将其扩展到可以处理更加复杂的类型键数组的特点是:寻址容易,插入和删除困难链表的特点是:寻址困难,插入哈删除容易左边很明显是个数组,数组的每个成员包括一个指针,指向一个链表头,当然这个链表可能为原创 2020-11-08 22:21:48 · 178 阅读 · 0 评论 -
平衡二叉树、B树、B+树、B*树 理解其中一种你就都明白了
平衡二叉树概念平衡二叉树是基于二分法的策略提高查找速度的二叉树的数据结构特点:平衡二叉树采用的是二分法的思维把数据按规则组装成一个树形的数据,用这个树形结构的数据减少无关数据的检索,大大的提升了数据检索的速度;平衡二叉树的数据结构组装过程有以下规则:1.非叶子节点只能允许最多两个节点存在2.每个非叶子节点数据分布规则为左边的子节点小于当前的节点值,右边的子节点大于当前节点值(这里的值基于自己的算法规则而定,比如hash值)平衡树的层级结构:因为平衡树查询性能和树的层级(h原创 2020-11-08 15:53:30 · 476 阅读 · 0 评论