Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

学习笔记

第二周的学习,我学习到了许多之前不了解的知识,首先是哈希表,映射和集合的知识,对应得是python中得dict和set,之后是树、堆和图

对于哈希表,首先就是他底层是通过哈希函数进行得下标的转换,放到哈希表中得什么位置,然后假如有碰撞发生,就会自己再形成一个链表。这时候就要求程序选择得哈希函数是非常优秀得才会不让碰撞总是发生,总发生这时间复杂度就高了,不好了。

一般来说,这个哈希表的查询的时间复杂度是o(1),最差也是o(n)。

然后set是一种集合的数据结构,底层都是一种map的键值对

接下来学习了树和图

书里面比较重要的是二叉搜索树,搜索遍历是o(n)的时间复杂度,有以下几个特点。

  1. 左子树上所有结点的值都小于他的根节点的值
  2. 右子树上所有结点的值都大于他的根节点的值
  3. 以此类推

这样中序遍历二叉搜索树的结果就是升序排序了,然后插入就首先进行查找,然后找到位置进行插入,删除就是删除后将离他最近的结点摆放到删除的结点位置。

然后是图的知识点: 邻接矩阵邻接表是存储的模式 图的最短路算法、拓扑排序、最小生成树、连通图个数这些都是图的应用。

之后是堆和二叉堆 堆是根节点最大的堆叫做大根堆,然后二叉堆是其中的一种实现堆的形式。 二叉堆一般是通过数组进行实现的。

在做题的过程中,会运用上面的数据结构进行排序找最大等等,还有非常重要的深度优先搜索和广度优先搜索,这些都是在做题的过程中进行了初步的运用,可以看到下周就是对相关知识点进行更加深入的讲解。