98、利用哈希高效组装稀疏矩阵及基于网站的并行PageRank计算分区技术

利用哈希高效组装稀疏矩阵及基于网站的并行PageRank计算分区技术

1. 利用哈希高效组装稀疏矩阵
1.1 插入操作

在稀疏矩阵的哈希表示中,插入操作是将值以元组 (k, v) 的形式插入到数组的下一个空闲位置,并将数组元素数量加 1。由于内存重新分配耗时,数组扩容时通常按当前大小的一定比例(如 10%)进行,且最小扩容不低于预定义常数(如 10 个元素),这样可避免频繁的小扩容,不过会占用一些未使用的内存。

1.2 获取操作

获取操作是在稀疏矩阵中查找给定 (x, y) 位置的元素。首先计算键 k 和哈希键 h(k) ,然后在数组 h(k) 中进行线性搜索,查找具有给定键的元素。若找到则返回其值,否则返回 0.0。由于搜索是在连续内存位置存储的平均长度为 b 的连续数组中进行,所以即使是 $O(N)$ 操作,搜索也很高效。使用长哈希表成功的关键在于每个哈希值 h(k) 所需数组的长度较短。也可使用基于树的结构(如 AVL 树)解决哈希键冲突,这样搜索变为 $O(logN)$ 操作,但插入操作会更复杂,且存储元素所需内存会增加,因为每个元素除键和值外,还需左右子树的两个指针。

1.3 添加操作

添加操作是将给定值加到稀疏矩阵中 (x, y) 位置存储的值上。首先执行获取操作定位元素,若找到且该位置已有非零值,则将给定值与之相加;若未找到,则使用插入操作插入该元素。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值