日期:2023-01-24 阅读量:0次 所属栏目:计算机应用
摘 要:介绍了利用Hash技术统计C源程序中关键字出现的频度的思路和方法。详细阐述了每个模块的具体设计方法,并给出使用C++语言描述的完整的程序。
关键词:Hash技术;C源程序;关键字;频度
1 引言
Hash技术是一种利用Hash函数进行查找的技术,在计算机软件应用中起着重要的作用。利用Hash技术统计C源程序中关键字出现的频度的方法可以引申到统计任何文本文件中任何字符串个数的方法,在很多领域都有应用的可能。
2 问题分析
2.1 Hash函数
Hash函数就是把任意长度的输入通过散列算法,变换成固定长度的输出的一种转换。该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一地确定输入值。
Hash函数主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的编码里。因此也可以说,Hash函数就是一种数据内容和数据存放地址之间的映射关系。
2.2 关键技术
统计C源程序中关键字出现的频度,主要分为这样几个关键技术:
一是选择合适的Hash函数。常用的Hash函数有直接定址法、除留余数法、数字分析法、平方取余法等众多种类,分别适合不同的问题要求。Hash函数选择的好坏对发生冲突的概率有着很大影响,因而在很大程度上影响程序运行的效率。
二是如何将所有关键字使用Hash函数存入比较数组中。
三是字符串模式匹配技术。即如何在众多程序代码中选择出C语言的关键字。
四是文件输入输出技术。这是整个方法的前提,即需要统计关键字个数的C源程序必须从文件中读入,才能进行处理。处理后的结果还需要写入文件中进行保存。
3 利用Hash函数统计C源程序中关键字出现频度的设计思想
使用Hash技术必须首先选择Hash函数。基于对问题的分析,在此我们选用除留取余法建立Hash函数。因为直接定址法虽然简单但会造成内存单元的大量浪费,而数字分析法、平方取中法等方法过于复杂,本身对时间资源的消耗过大,在本问题中使用并不值得。我们建立的Hash函数为:
Hash(key)==' 本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/241437.html