`
peizhiinfo
  • 浏览: 1494488 次
文章分类
社区版块
存档分类
最新评论

简单的Hash

 
阅读更多

例题:

给你一堆英文单词(可能有4000000个。用普通查询铁定让你TLE)。找出出现次数最多的,输出这个单词,并输出出现的次数。


思路:

hash离散数据,进行查询即可。(转化为数字时)

1.首先将每个字符串转化为一个数字。

2.把离散后的结果存入hashnode[]数组中。(初始化头结点全部为空,且头结点不存内容,只是判断离散后是否有这个结果)

3.插入+查询操作

若该结果出现过,则与结点内容想比较,相同则该结点单词数目加1。否则查找以此数字为离散结果的下一个结点(离散结果相同)。

没出现过:开辟新结点,插入到以此数字为离散结果的单链表中,单词数目设为1,字符串复制至结点中。

4.在插入过程中不断比较,找出最大的单词数目,并记录。(maxcount,ans[11])。


代码如下:



分享到:
评论

相关推荐

    一种程序用Hash算法

    “简易Hash算法”通常指的是实现简单但可能效率较低的哈希函数。这类函数可能包括直接取模、异或运算、位操作等。例如,一个简单的哈希函数可能是将字符串的每个字符的ASCII码相加,然后对一个质数取模,这样可以...

    几种经典的Hash算法的实现(源代码)

    ### 经典Hash算法概述与实现 #### 一、引言 哈希算法在计算机科学领域扮演着极其重要的角色,特别是在数据检索、信息安全以及数据完整性校验等方面。它能够将任意长度的数据转换成一个固定长度的哈希值,这一过程在...

    uthash开源的hash函数实现

    UTHASH 是一个开源的 C 语言库,提供了一种简单且高效的哈希表实现,用于在 C 代码中快速查找和管理数据结构。这个库的主要功能是提供一个宏定义的集合,可以方便地将结构体转化为哈希表,进而进行添加、删除、查找...

    java版简单hash表,占用内存尽可能最小

    一个自己做的最简单的hash表,主要用于判断某关键字是否存在,占用内存尽可能的最小,原生的hashTable占用内存太大了,适合大数据,使用的时候请注意修改height值,一般设为数据量的200分之一至400分之一即可,如果...

    Hash算法大全.txt

    - **定义**:这是一种简单的Hash算法,通过累加字符串中的字符ASCII值来计算Hash值。 - **实现**: ```java public static int additiveHash(String key, int prime) { int hash = 0; for (int i = 0; i (); i...

    hash字符串函数总结

    这种方法简单且高效,适合处理简单的字符串。 这些哈希函数各有特点,适用于不同的场景。例如,SDBM和RS适用于需要快速计算的场合,而PJW和ELF更注重减少哈希冲突。在实际应用中,选择合适的哈希函数取决于具体需求...

    如何找到周围8个区域的GeoHash编码

    因此,找到一个GeoHash编码的相邻区域,可以简单地通过加一或减一操作来实现。 - 对于一个GeoHash编码,其周围8个邻居包括上下左右四个方向和它们的对角线方向。 - 通过调整GeoHash编码的最后一个字符,可以生成这...

    geohash:一个解决计算附近距离的php类库

    `geohash`是一个非常实用的技术,它利用了空间数据索引和编码策略,使得在PHP中处理地理位置信息变得高效且简单。本文将深入探讨`geohash`的原理、应用以及如何在PHP中实现。 `geohash`是一种基于坐标的空间数据...

    常用Hash算法(C语言的简单实现)

    Hash算法是一种将任意长度的输入(也叫做预映射)通过一个特定的函数转换成固定长度输出的算法。这个输出通常称为哈希值或散列值。哈希算法在计算机科学中有广泛的应用,如数据存储、查找表、密码学、数字签名等。...

    Hash值校验工具

    1. 拖拽功能:用户可以通过简单的拖放操作将文件添加到工具中,无需复杂的步骤,大大提高了效率。 2. 多种算法支持:除了常见的MD5和SHA-1,高质量的Hash值校验工具还会支持SHA-256、SHA-384、SHA-512等多种算法,以...

    hash_map的简单应用

    hash_map

    geohash经纬度转换包linux

    例如,它可以帮助构建高效的地理索引,使得查找附近的地点或分析地理位置分布变得更加简单。 要使用这个库,首先需要安装它,通常通过Python的包管理工具pip: ```bash pip install mzgeohash ``` 然后在Python...

    图像的相似度Hash算法(aHash的delphi实现).rar

    总结来说,aHash算法是一种快速且简单的图像相似度比较方法,特别适合于大量图像的预筛选。在Delphi中实现aHash,需要理解算法的基本流程,并能够利用Delphi的图像处理和二进制操作功能。通过这个压缩包,你可以学习...

    密码学hash函数关于hash函数的ppt

    本章节介绍了两种简单但不够安全的Hash函数示例,以帮助理解设计安全Hash函数时需考虑的关键因素。 1. **简单的奇偶校验Hash函数** - 这种方法将输入数据分组,对每个分组的相应位执行异或操作。 - 虽然对于随机...

    hash函数 c语言

    JSHash通过异或操作结合位移和简单的加法,实现了较高的散列效率和较好的散列质量。该算法的核心在于使用异或和位移操作来混合当前字符与现有哈希值,确保每个输入字符对最终哈希值的影响是不可预测的。 ```c ...

    hash算法相关介绍

    ### Hash算法相关介绍 在计算机科学领域,哈希(Hash)是一种将任意长度的数据映射为固定长度数据的技术。哈希算法广泛应用于多种场景中,包括但不限于数据完整性验证、密码存储、快速查找等。本文主要介绍了几种...

    一致性Hash简单实现

    - 编写`ConsistentHash`类,实现哈希环的逻辑,包括添加节点、删除节点、查找节点等方法。 - 实现查找算法,可以使用`TreeMap`的`lowerKey()`或`ceilingKey()`方法找到环上最近的虚拟节点。 4. **优化策略** - *...

    uthash User Guide

    uthash通过简单的宏定义,使得在C语言中实现哈希表变得轻而易举,特别适合处理大量结构化的数据。 1. **哈希函数和哈希表**:uthash中的每个结构体元素都包含一个名为`UT_hash_handle`的隐藏字段,这个字段用于存储...

    文件Hash值校验工具

    文件Hash值校验工具的使用非常简单,用户只需将文件拖放到工具界面,或通过菜单选择文件,然后点击计算按钮,工具会迅速显示出文件的Hash值。对于批量文件的校验,一些高级工具还提供了批处理功能,可以一次性对多个...

    常用的hash算法(java实现)

    CRC32不是一种安全的哈希算法,但因其快速和简单,常用于检查数据传输错误。在Java中,`java.util.zip.CRC32`类提供了CRC32的实现: ```java import java.util.zip.CRC32; public class CRC32Example { ...

Global site tag (gtag.js) - Google Analytics