PAT归纳总结——一些容易记混的概念

  在刷题的过程中,有时候会遇到一些数据结构中的一些概念,如果对这些概念理解不清楚,甚至理解有误的话,就很可能把题目做错。所以,专门找出在刷题过程中出现的一些概念,以免考试的时候用到想不起来。

  • 拓扑排序

  1. 每个顶点出现且只出现一次

  2. 若顶点A在序列中排在顶点B的前面,则在图中不存在从顶点B到顶点A的路径。

  或者定义为:拓扑排序是对有向无环图的一种排序,它使得若存在一条从顶点A到顶点B的路径,则在排序中顶点B出现在顶点A的后面。

   例题:1146 Topological Order


  • 散列表的冲突处理方法(开放寻址法)

  数学递推公式: Hi = (H(key) + di) % m. 

  1. 线性探测法

  当di = 0, 1, 2, 3, 4……, m - 1时,称为线性探测法。这种方法的特点是当冲突发生时,顺序查看表中的下一个单元,直到找到一个空闲单元,或者遍历全表。

  2. 平方探测法

  当di = 0, 1, -1, 4, -4, 9, -9……时,称为平方探测法。散列表的长度必须是一个能够表示成4k + 3的素数。这种方法能够避免出现堆积效应,但是不能够遍历表中的所有单元,至少能够探测到一半的单元。 

  3. 再散列法

  运用两个散列函数,当一个散列函数产生冲突时,则利用第二个散列函数计算地址增量,具体的函数形式如下所示:

  Hi = (H(Key) + i * Hash2(key)) % m

  4. 伪随机序列法

  当di为伪随机序列的时候,称为伪随机序列法。

 

  例题:1145 Hashing - Average Search Time

原文地址:https://www.cnblogs.com/h-hkai/p/13211775.html