看了很多讲B树和B+树的文章,大多都是围绕各自的特性讲的,第一,树中每个结点最多含有m个孩子(m>=2);第二,……我也是从这些文章里弄懂了各种树的联系与区别,要真写,我可能还不如人家写得好。所以就在这里简明扼要的用几张图记录一下主要区别吧。    为了便于说明,我们先定义一条数据记录为一个二元组[key,data],key为记录的键值,key唯一;data为数据记录除key外的数据。   B树   每个节点都存储key和data,所有节点组成这棵树,并且…

2021年5月3日 0条评论 11点热度 阅读全文

  看了很多讲B树和B+树的文章,大多都是围绕各自的特性讲的,第一,树中每个结点最多含有m个孩子(m>=2);第二,……我也是从这些文章里弄懂了各种树的联系与区别,要真写,我可能还不如人家写得好。所以就在这里简明扼要的用几张图记录一下主要区别吧。    为了便于说明,我们先定义一条数据记录为一个二元组[key,data],key为记录的键值,key唯一;data为数据记录除key外的数据。   B树   每个节点都存储key和data,所有节点组成这棵树,并且…

2021年2月28日 0条评论 27点热度 阅读全文

  看了很多讲B树和B+树的文章,大多都是围绕各自的特性讲的,第一,树中每个结点最多含有m个孩子(m>=2);第二,……我也是从这些文章里弄懂了各种树的联系与区别,要真写,我可能还不如人家写得好。所以就在这里简明扼要的用几张图记录一下主要区别吧。    为了便于说明,我们先定义一条数据记录为一个二元组[key,data],key为记录的键值,key唯一;data为数据记录除key外的数据。   B树   每个节点都存储key和data,所有节点组成这棵树,并且…

2021年2月28日 0条评论 25点热度 阅读全文

链表及基本操作 定义 基本操作 1. 创建单链表 2. 插入节点 3. 删除节点 4. 反转链表 5. 倒数第K个节点 6. 是否有环 本文所述均为单向链表。 ps:更多数据结构知识详见: 常见数组结构与算法 定义 链表:由一系列结点(链表中每一个元素称为结点)组成,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 typedef struct ListNode{ int val; struct ListNode* next; ListNode(int x) : val(x),…

2019年6月16日 0条评论 6点热度 阅读全文

          五大经典算法分为 1、分治法:把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 2、动态规划法:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。 3、贪心算法:在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是…

2018年8月21日 0条评论 9点热度 阅读全文

有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。   如果每次走1级,需要走10步,结果可以表示成(1,1,1,1,1,1,1,1,1,1); 如果每次走2级,需要走5步,结果可以表示成(2,2,2,2,2,); 思考一下,你还能写出几种…… 那么,共有多少种走法呢?   我们可以这样想,假设我们现在还有最后一步要走,可能的情况有哪些? 1.我们站在第9级上,一步1级后到达顶端; 2.我们站在第8级上,一步2级后到达顶端; 所以,最后…

2017年6月2日 0条评论 10点热度 阅读全文

1 二分查找 //二分查找 typedef int Rank; template<typename T> Rank BinarySearch(T *A, T const& value, Rank lo, Rank hi) { if (value < A[lo] || A[hi] < value) return -1; while (lo <= hi) { Rank mid = lo + ((hi - lo) >> 1); if (A[mid] < value)…

2017年4月15日 0条评论 15点热度 阅读全文

前言        二叉排序树(又称二叉查找树、二叉搜索树),在进行查找、插入及删除操作时其平均时间复杂度为O(logn),但是它们的最坏时间复杂度都是O(n)和顺序查找的效率相同,出现这种情况的原因在于它们虽然对关键字值进行了排序,但是并没有对树的形状进行限制。即当关键字序列有序时,就会出现这种最坏情况(单侧的二叉树),平衡二叉树的引入就可以对其进行有效调整。        例如:对于…

2014年10月16日 0条评论 11点热度 阅读全文