算法导论程序24--直接寻址表(Python)
当关键字的全域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)相关推荐
- 【算法导论33】跳跃表(Skip list)原理与java实现
Skip list是一个用于有序元素序列快速搜索的数据结构,由美国计算机科学家William Pugh发明于1989年.它的效率和红黑树以及 AVL 树不相上下,但实现起来比较容易.作者William ...
- 【MIT算法导论】哈希表、全域哈希
哈希表及哈希算法 一. 直接寻址 1. 应用条件 当关键字的全域比较小时(也即:候选的关键字的数目较少),直接寻址法才是行之有效的. p.s. 借用下图,即U(全域)很小,那么需要存储的部分K(实际需 ...
- 算法导论 习题24.2-4 amp; 24.3-6 单源最短路径问题
24.2-4:给出一个高效算法来统计邮箱无回路图中的全部路径数.分析所给出的算法. 24.3-6:设G=(V,E)为带权有向图,权函数W: E-> {0,1,....,W},其中W为某非负整数. ...
- 算法导论 思考题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 ...
- 《算法导论》24.3-Dijkstra(迪杰斯特拉)算法(含C++代码)
一.相关含义 1.Dijkstra算法在运行过程中维持的关键信息是一组结点集合S.从源结点s到该集合中每个结点之间的最短路径已经被找到.算法重复从结点集V- S中选择最短路径估计最小的结点u,将u加入 ...
- [转载] 算法导论:分治法,python实现合并排序MERGE-SORT
参考链接: Python中的合并排序merge sort 1. 简单合并排序法实现 思想:两堆已排好的牌,牌面朝下,首先掀开最上面的两张,比较大小取出较小的牌,然后再掀开取出较小牌的那一堆最上面的牌和 ...
- 《算法导论》之hash表
Hash表原理不难,难在如何选择表的大小以及hash函数,这个涉及到很多数学的东西,这里就先不详述了,而是先整理下基本概念和一些结论. Hash就是通过函数,将大范围的key值映射到小范围的hash表 ...
- 算法导论 练习14.1-7
14.1-7 说明如何在O(nlgn)O(nlgn)O(nlgn)时间内,利用顺序统计树对大小为nnn的数组中的逆序对(见思考题2-4)进行计树. 这道题和算法导思考题2-4一致,当时采用了归并排序和 ...
- 算法导论 直接寻址表
算法导论 第11章 散列表 11.1 直接寻址表 如果某应用要用到一个动态集合,其中每个元素都是全域U={0,1-.,m}中的一个关键字 为表示动态集合,使用数组.称为直接寻址表,记为T[m],其中每 ...
最新文章
- 不错的工具:Reflector for .NET
- 面向对象软件设计——设计模式学习
- 【习题 5-14 UVA - 1598】Exchange
- [LintCode] Simplify Path [字符串操作]
- 产品经理十二时辰:内容过于真实,扎心了!
- arm处理器的历史及现状
- oracle数据分布不均,oracle性能优化操作七:索引提高数据分布不均匀时查询效率...
- 崩坏学园2及大部分采用ETC1压缩格式的Unity3D游戏的拆包图处理
- 利用Mapinfo工具转地图数据
- 网吧操作系统制作和优化的经验
- 移动端怎么让图片不失真_图片怎样放大后不模糊 图片放大不失真的方法步骤...
- 2014 年度 Git@OSC【非GitHub】 最热门的 50 个项目
- https://juejin.im/post/5ae081aaf265da0b767d263a
- android分屏后布局变化问题,Android分屏多窗口实践
- 三维空间 点线面解析
- 【排序】冒泡排序与快速排序(三个版本+非递归图示详解哦)
- C++ Eigen 库中旋转向量、旋转矩阵、欧拉角、四元数的定义及互相转换
- 股票6题(Aced)
- python:实现Triplets with zero sum零和三元组(附完整源码)
- 统计分析知识之--描述性统计