【转载】SAS  Hash 对象

Hash对象  1.基本原理散列表(Hash table,也叫哈希表),是根据关键码值(Keyvalue)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。在数据装载时,根据F(key)=内存地址将表存到内存中指定的地址;   key value内存地址(举例) 张
摘要由CSDN通过智能技术生成
Hash 对象   

1.基本原理

散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

在数据装载时,根据F(key)=内存地址将表存到内存中指定的地址;   

 key  value 内存地址(举例)
 张三  87  A1=F(张三)=18
 李四  98  A2=F( 李四)=20
 王五  69 A3= F(王五)=36
 阮六  83  A4= F(阮六)=48

 当要查找这个表中的数据时只要给定KEY值根据A=F(key)可以快速的得到的该key对应的内存地址直接进行取数,不用扫描整个表。  

2.SAS中定义的HASH对象:

Hash对象的最基本的要点有三个:

(1)要放入内存中的表

(2)用来通过hash函数建立与内存对应存储地址的KEY值(可以是数值、字符或者两者的混合,最好是表的主键否则只有第一条记录有效,因为key值相同通过F(key)只会指向一个地址)。

(3)要调入内存中与key值一起构成数组的变量.

3.在SAS中分别通过以下步骤来完成上述三个要点:


(1)发布HASH对象
DECLARE hash hash_name(<</SPAN>dataset: 'dataset_name',ordered:'');

Object:指定对象,只能是hash或hiter;

hash_name:为建立的hash对象命名,便于后边调用。

dataset: 'dataset_name',指定要放入内存中的数据集

ordered: 'option' 装入内存中的数据要不按key进行排序,'option''是下面几种:ascending' | 'a';'descending' | 'd';'YES' | 'Y'; 'NO' | 'N'默认: NO 。


例如:

declare hash h (dataset:'work.a',ordered:'ascending');

按关键字的升序将数据集读入内存通过hash函数建立hash表。

(2)指定key值变量 hash_name.difinekey(“key_1”…);

例如:h.
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值