当关键字的全域U比较小时,直接寻址是一种简单而有效的技术。

假设某应用要用到一个动态集合,其中每个元素都是取自全域U={0,1,...   ,m-1}中的一个关键字,这里m不是一个很大的数。另外,假设没有两个元素具有相同的关键字。

为表示动态集合,我们用一个数组,或称为直接寻址表,记为T[0...m-1]。其中的每个位置,或称为槽(slot).对应全域U中的一个关键字。槽k指向集合中的一个关键字为k的元素。如果该集合中没有关键字为k的元素,则T[k]=NIL。

class direct_address_table:def __init__(self,T=[],size=0):if len(T)==0:self.T=[None for i in range(size)]else:self.T=Tself.size=sizedef search(self,k):return T[k]def insert(self,x):self.T[x.key]=xdef delete(self,x):self.T[x.key]=NILclass Node:def __init__(self,key):self.key=key

运行:

>>> T=[]
>>> dat=direct_address_table(T,10)
>>> x=Node(2)
>>> dat.insert(x)

算法导论程序24--直接寻址表(Python)相关推荐

  1. 【算法导论33】跳跃表(Skip list)原理与java实现

    Skip list是一个用于有序元素序列快速搜索的数据结构,由美国计算机科学家William Pugh发明于1989年.它的效率和红黑树以及 AVL 树不相上下,但实现起来比较容易.作者William ...

  2. 【MIT算法导论】哈希表、全域哈希

    哈希表及哈希算法 一. 直接寻址 1. 应用条件 当关键字的全域比较小时(也即:候选的关键字的数目较少),直接寻址法才是行之有效的. p.s. 借用下图,即U(全域)很小,那么需要存储的部分K(实际需 ...

  3. 算法导论 习题24.2-4 amp; 24.3-6 单源最短路径问题

    24.2-4:给出一个高效算法来统计邮箱无回路图中的全部路径数.分析所给出的算法. 24.3-6:设G=(V,E)为带权有向图,权函数W: E-> {0,1,....,W},其中W为某非负整数. ...

  4. 算法导论 思考题2-4

    思考题2-4(逆序对) 假设A[1..n]A[1..n]A[1..n]是一个有nnn个不同数的数组,若i<ji<ji<j且A[i]>A[j]A[i]>A[j]A[i]&g ...

  5. 《算法导论》24.3-Dijkstra(迪杰斯特拉)算法(含C++代码)

    一.相关含义 1.Dijkstra算法在运行过程中维持的关键信息是一组结点集合S.从源结点s到该集合中每个结点之间的最短路径已经被找到.算法重复从结点集V- S中选择最短路径估计最小的结点u,将u加入 ...

  6. [转载] 算法导论:分治法,python实现合并排序MERGE-SORT

    参考链接: Python中的合并排序merge sort 1. 简单合并排序法实现 思想:两堆已排好的牌,牌面朝下,首先掀开最上面的两张,比较大小取出较小的牌,然后再掀开取出较小牌的那一堆最上面的牌和 ...

  7. 《算法导论》之hash表

    Hash表原理不难,难在如何选择表的大小以及hash函数,这个涉及到很多数学的东西,这里就先不详述了,而是先整理下基本概念和一些结论. Hash就是通过函数,将大范围的key值映射到小范围的hash表 ...

  8. 算法导论 练习14.1-7

    14.1-7 说明如何在O(nlgn)O(nlgn)O(nlgn)时间内,利用顺序统计树对大小为nnn的数组中的逆序对(见思考题2-4)进行计树. 这道题和算法导思考题2-4一致,当时采用了归并排序和 ...

  9. 算法导论 直接寻址表

    算法导论 第11章 散列表 11.1 直接寻址表 如果某应用要用到一个动态集合,其中每个元素都是全域U={0,1-.,m}中的一个关键字 为表示动态集合,使用数组.称为直接寻址表,记为T[m],其中每 ...

最新文章

  1. 不错的工具:Reflector for .NET
  2. 面向对象软件设计——设计模式学习
  3. 【习题 5-14 UVA - 1598】Exchange
  4. [LintCode] Simplify Path [字符串操作]
  5. 产品经理十二时辰:内容过于真实,扎心了!
  6. arm处理器的历史及现状
  7. oracle数据分布不均,oracle性能优化操作七:索引提高数据分布不均匀时查询效率...
  8. 崩坏学园2及大部分采用ETC1压缩格式的Unity3D游戏的拆包图处理
  9. 利用Mapinfo工具转地图数据
  10. 网吧操作系统制作和优化的经验
  11. 移动端怎么让图片不失真_图片怎样放大后不模糊 图片放大不失真的方法步骤...
  12. 2014 年度 Git@OSC【非GitHub】 最热门的 50 个项目
  13. https://juejin.im/post/5ae081aaf265da0b767d263a
  14. android分屏后布局变化问题,Android分屏多窗口实践
  15. 三维空间 点线面解析
  16. 【排序】冒泡排序与快速排序(三个版本+非递归图示详解哦)
  17. C++ Eigen 库中旋转向量、旋转矩阵、欧拉角、四元数的定义及互相转换
  18. 股票6题(Aced)
  19. python:实现Triplets with zero sum零和三元组(附完整源码)
  20. 统计分析知识之--描述性统计

热门文章

  1. vncserver密码修改
  2. 游戏浅谈1-传奇,跑跑卡丁车
  3. Java 输出杨辉三角
  4. 简单介绍一下CGAN
  5. 无需插件修改chrome浏览器UA标识为手机版
  6. 数据保护新愿景:欧盟GDPR十个误解与争议
  7. Verilog专题(二十四)Lemmings3
  8. 聚类方法的区别解读:各种聚类分析
  9. C#中WorkBook的操作
  10. mac安装配置maven