zoukankan      html  css  js  c++  java
  • 大一第九周学习体会

    二分查找:又称为折半查找,适用于排好序的顺序表。
    基本思路:首先将给定的查找值K,与表中的中间位置的元素的关键字进行比较,若相等,则返回该元素的位置;若不等,表明所需查找的元素只能在中间元素的前半部分或者后半部分中;然后在缩小的范围中继续同样的查找,如此反复直到找到为止。
    实现方式:递归实现和非递归实现
    1、二叉查找树
        特点:左子树上所有结点的值均小于或等于它的根结点的值。右子树上所有结点的值均大于或等于它的根结点的值。左、右子树也分别为二叉排序树。
    2、B-tree:
    B-tree树即B树,B即Balanced,平衡的意思。B-树是一种多路搜索树(并不一定是二叉的)---平衡多叉树
    一个m阶的B树具有如下几个特征:
        1.根结点至少有两个子女。
        2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m
        3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m
        4.所有的叶子结点都位于同一层。
        5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。
        优点:
        B树比二叉树强的地方就在于,同样的数据,B树更矮胖,以及B树可以达到自平衡结构。
    3、B+tree
    概述:B+ 树是一种树数据结构,是一个n叉排序树,每个节点通常有多个孩子,一棵B+树包含根节点、内部节点和叶子节点。根节点可能是一个叶子节点,也可能是一个包含两个或两个以上孩子节点的节点。
    特点:
      1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。
      2.所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。
      3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。
    4、红黑树
    概述:红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构
    特点:
      1.节点是红色或黑色。
      2.根节点是黑色。
      3.每个叶子节点都是黑色的空节点(NIL节点)。
      4.每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
      5.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
    5、跳跃表
    概念:是一种随机化数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(log n)平均时间),并且对并发算法友好。
    应用:Skip list(跳表)是一种可以代替平衡树的数据结构,默认是按照Key值升序的。Skip list让已排序的数据分布在多层链表中,以0-1随机数决定一个数据的向上攀升与否,通过“空间来换取时间”的一个算法,在每个节点中增加了向前的指针,在插入、删除、查找时可以忽略一些不可能涉及到的结点,从而提高了效率。
     
  • 相关阅读:
    apache+php+mysql配置
    欧拉函数知识点总结及代码模板及欧拉函数表
    栈排序
    codeforces 722C (并查集)
    北京网赛I题 hiho1391 (树状数组、区间覆盖最大值问题)
    HDU5898、 HDU 2089(数位DP)
    HDU 5876 (大连网赛1009)(BFS + set)
    codeforces 682D(DP)
    codeforces 666A (DP)
    codeforces 706D (字典树)
  • 原文地址:https://www.cnblogs.com/vvxvv/p/11441915.html
Copyright © 2011-2022 走看看