zoukankan      html  css  js  c++  java
  • 数据结构二叉树等

    ●叶子节点=度为2的节点数+1

    ●线索二叉树:结点中加入一个前驱和后继.

    树的存储:双亲法(因为每个节点只有一个父节点,所以只存一个parent即可),孩子法,孩子兄弟法

     ●有序查找:2分,斐波那契查找.斐波那契法:比如表里面有20个元素.斐波那契数列是1,1,2,3,5,8,13,21那么我们就找13开始,然后继续找下标.基本也是一个对半的过程.

    ●动态查找表:当表中没有这个key的查找记录时候,用随便一个方法找一下,然后把结果记录下来. 例子:2叉搜索树,红黑树,B树,B+树,trie树,dat树,哈希表

    ●排序方法:老考,虽然不用但是思想老考.需要掌握

    插入排序:讲一个记录插入到已经排好序的有序表中.

    希尔排序:先将整个序列分割成若干个子序列分别进行插入排序,然后堆整体进行一次插入排序即可.

    选择排序:第一次找到最小的放到第一个位置,第二次从[1:]中选最小的放第二个位置...........

    堆排序,归并排序

    链式基数排序:效率O(N) 也叫桶排序.他是稳定的排序方法.

    第一步
    以LSD为例,假设原来有一串数值如下所示:
    73, 22, 93, 43, 55, 14, 28, 65, 39, 81
    首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶子中:
    0
    1 81
    2 22
    3 73 93 43
    4 14
    5 55 65
    6
    7
    8 28
    9 39
    第二步
    接下来将这些桶子中的数值重新串接起来,成为以下的数列:
    81, 22, 73, 93, 43, 14, 55, 65, 28, 39
    接着再进行一次分配,这次是根据十位数来分配:
    0
    1 14
    2 22 28
    3 39
    4 43
    5 55
    6 65
    7 73
    8 81
    9 93
    第三步
    接下来将这些桶子中的数值重新串接起来,成为以下的数列:
    14, 22, 28, 39, 43, 55, 65, 73, 81, 93
    这时候整个数列已经排序完毕
    View Code
  • 相关阅读:
    GitHub与Markdown(学习笔记)
    “Another git process seems to be running in this repository...”Git此问题解决
    Git学习笔记--实践(三)
    Git学习笔记--配置(二)
    Java 锁(学习笔记)
    Git学习笔记--历史与安装(一)
    Java 8中Stream API(学习笔记)
    Qt Creator的下载和安装
    获取 wx.getUserInfo 接口后续将不再出现授权弹窗,请注意升级(微信小程序开发)
    大型网站架构技术一览
  • 原文地址:https://www.cnblogs.com/zhangbo2008/p/9242470.html
Copyright © 2011-2022 走看看