寒假 6(计划更改)

Posted guguclaire

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寒假 6(计划更改)相关的知识,希望对你有一定的参考价值。

遇到了一道题:longest substring with at most two distinct characters

我用sliding window解了,看到有个解法中有用到hash table的,至此了解到数据结构的概念,决定更改计划。

开始学习《数据结构与算法分析  c语言实现》。

 

 

 

此处附上暂时的对hash table的理解:

 

hash table:数据结构的一种,和数组。链表是一个类型的东西,用于整体存储调用一定数量的数据。是一种存储和调用数据的方式。

哈希表对待查数据构造商群,到一个关键字集合中,使用商群到原集的映射,每个关键字映射到一个等价类集合,通过关键字查找到对应的数据地址,在同一个等价类中,又有其他的秩序,便于系统的寻址

不同元素在同一等价类中的现象称为,哈希冲突,冲突是高效寻址的副产物,无法避免。

但是可以在同一等价类中构造秩序,例如链表。以进行下一步的精确寻址。

 

构建过程:

 分配内存,内存分成不同的小块并区分,用于存放不同的等价类。

把元素集按某个,等价关系,构建商映射,得到不同的等价类,每个等价类通过一个map对应到存储块上

每个等价类中的元素的区分函数

 

等价关系的构建,等价类到内存块的映射,区分函数的构建;内存分块方法

 

内存分配与分块:多次调用malloc分配储存空间并用不同的指针标识

等价关系和商映射的构建:根据元素类型特点,找可利用的性质;根据性质确定一个key

区分函数的构建,根据元素类型特点,找可利用的性质

等价类到内存块:这就是hash函数?

 

 

使用的时候:

查找某元素:得到key,hash函数处理key得到hash值,对应到内存块,内存块内用比较函数,得到目标数据

 

以上是关于寒假 6(计划更改)的主要内容,如果未能解决你的问题,请参考以下文章

2018寒假 acm训练计划

寒假计划制定

寒假训练计划

一寒假学习计划:万事俱备,只欠Ubuntu——Ubuntu配置。

寒假学习计划

寒假学习计划