码迷,mamicode.com
首页 > 其他好文 > 详细

寒假 6(计划更改)

时间:2018-02-06 23:12:36      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:哈希   开始   gpo   学习   bst   数组   char   有用   方式   

遇到了一道题: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(计划更改)

标签:哈希   开始   gpo   学习   bst   数组   char   有用   方式   

原文地址:https://www.cnblogs.com/guguclaire/p/8424284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!