• 学习数据结构基础


    环形队列
    优先队列

    二叉树两种存储方式:链表,数组

    二叉查找树:左子树比根节点大,右子树比根节点小
    二叉树自平衡

    平衡二叉树:又叫AVL树
    平衡因子 <= 1
    是二叉搜索树
    LL RR
    左旋,右旋

    红黑树是一种包含红黑结点并能自平衡的二叉查找树
    红黑树不是完美平衡二叉树,就是平衡因子会大于1
    1.每个结点,颜色要么是红色,要么是黑色
    2.根节点是黑色

    3.叶子节点(NIL){
              color:黑色
              value:NULL
               }
    4.每个红色节点的两个子节点都是黑色的
    5.任意一节点到每个叶子节点的路径都包含数量相同的黑节点

    红黑树的自平衡每次只考虑CPGU三代,要考虑这4个节点
              O
          O    O
     O(当前节点)
    旋转节点绕圆心逆时针方向,基于最短路径累确定方向,旋转节点围绕子节点旋转(子节点为圆心)
    CPG三点一线
    CPG三角关系

    https://www.cs.usfca.edu/~galles/visualization/RedBlack.html

    B树:
    平衡多路查找树
    可以不止两个节点,节点中最多的节点树,就成为几阶的B树
    每个节点也可能有多个关键字:k1 < k2 < k3..
    每个节点不仅包含key值,还包括指向一条记录的指针

    B+树:
    跟B很像,不同点:每个非叶子结点,不包含实际的记录指针,只包含关键字,这样关键字可以更多
    只有叶子节点包含指向实际记录的指针,非叶子节点也出现在叶子节点中,然后所有叶子节点连在一起,组成一个链表
    mysql索引用的B+树

     https://zhuanlan.zhihu.com/p/27700617


    遍历
    深度优先遍历(前序,中序,后序)(递归实现,或者是栈,能用递归的都可以用栈)
    广度优先遍历(层序遍历)(用队列实现)

    二叉堆:要求根节点比左右节点大,是一种特殊的完全二叉树,用数组存储
    最大堆:根节点大于或者等于左右子节点
    最小堆:根节点小于或者等于左右子节点
    二叉堆是实现堆排序和优先队列的基础

    优先队列分为最大优先队列和最小优先队列
    最大优先队列:最大堆实现,最大元素出队
    最小优先队列:最小堆实现,最小元素出队

    O(n2)

    冒泡
    选择
    插入
    希尔

    O(nlongn)
    快速排序(双边循环法,单边循环法)
    归并排序
    堆排序
    把无序数组构建成二叉堆,最大堆,或者最小堆
    循环删除堆顶元素,替换到二叉堆的末尾,调整堆产生新的堆顶


    O(n)
    计数排序
    桶排序
    基数排序

  • 相关阅读:
    cookie和session。
    K3cloud Web API对接---单据保存接口(有源单)
    K3 wise kis 防火墙设置
    新单序时簿插件
    mssqlserver中排序规则冲突的问题解决
    读取金蝶图片
    金蝶wise委外订单关闭简述
    存储过程加锁
    判断存储过程是否存在
    解除死锁
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/12682952.html
Copyright © 2020-2023  润新知