9.5-9.6作业

一.哈希表的基本知识

1.定义:哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的映象作为记录在表中的存储位置,这种表称为哈希表或散列表,所得存储位置称为哈希地址或散列地址。

2.特点:哈希表结合了数组和链表的优点,使得寻址、插入和删除操作都相对容易。

3.哈希函数
作用:哈希函数是将哈希表中元素的关键键值映射为元素存储位置的函数。
要求:哈希函数应该易于计算,并且尽量使计算出来的索引值均匀分布,以减少冲突的发生。

4.哈希冲突与哈希碰撞
哈希冲突(Hash Collision)或哈希碰撞,是指不同的关键字通过同一个哈希函数可能得到同一哈希地址的现象,即key1 ≠ key2,但Hash(key1) = Hash(key2)。具有相同函数值的关键字对该哈希函数来说称为同义词。

 

 

二.链表的基本知识
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。以下是链表的基本知识概述:

1. 定义与结构
定义:链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。
结构:每个结点包括两个部分,一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

2. 类型
链表有多种类型,主要包括:
单向链表:每个结点只包含一个指向下一个结点的指针。
双向链表:每个结点包含两个指针,一个指向前一个结点,另一个指向下一个结点。
循环链表:链表首尾相连,形成一个环。

 

三.递归方法的基本思路
递归是算法设计中的一种基本而重要的方法,它通过函数调用自身将问题转化为本质相同但规模较小的子问题来解决。以下是递归方法的基本思路:

1. 定义与结构
定义:如果一个对象的描述中包含它本身,我们就称这个对象是递归的,这种用递归来描述的算法称为递归算法。
结构:递归算法通常包含递归调用和递归终止条件两部分。

2. 基本思路
分解问题:将一个大问题分解成若干个与原问题相似但规模较小的子问题。
递归求解:递归地求解这些子问题,直到达到递归终止条件。
合并结果:将子问题的解合并起来,得到原问题的解。

3. 必要条件
递归终止条件:必须有明确的递归终止条件,也称为递归出口,以防止无限递归。
过程描述中包含自身:递归过程的描述中必须包含对自身的调用。

1c195f9474d3421196040fb43fed8458.png

2ed2b085691245b9a67078b95217ec31.png 

2c14c783ec2f4eb1aeb41aa47bb3782c.png 

89ef802a91684735b23c4e93ad101fb0.png 

564b4768340e43a0b19559f9e92ee232.png

 

 

ee8a48c059f5424092b4efb47b6e6433.png 

8860c00a33ce4826a427f6e78ba02ce7.png

 

7ccbf2457a39442584b992af3f792010.png  

ce4d73133b384a6cba3201c8bb72d802.png99fab954ff9b4576bbf24af66b351094.png

ee3ee3dd0fb84052814b94b3bd69480a.png 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值