加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

按哈希值Perl的哈希值哈希值排序

发布时间:2020-12-15 21:17:01 所属栏目:大数据 来源:网络整理
导读:我有一个类似于以下的哈希结构: KeyA = { Key1 = { Key4 = 4 Key5 = 9 Key6 = 10 } Key2 = { Key7 = 5 Key8 = 9 } }KeyB = { Key3 = { Key9 = 6 Key10 = 3 } } 我需要通过哈希结构打印遍历路径和遍历结束时的值,以便按值排序. 例如,对于上面的哈希结构,我需
我有一个类似于以下的哈希结构:
KeyA => {
         Key1 => {
                   Key4 => 4
                   Key5 => 9
                   Key6 => 10
                 }
         Key2 => {
                   Key7 => 5
                   Key8 => 9
                 }
        }
KeyB => {
         Key3 => {
                   Key9 => 6
                   Key10 => 3
                 }
        }

我需要通过哈希结构打印遍历路径和遍历结束时的值,以便按值排序.
例如,对于上面的哈希结构,我需要打印:

KeyB Key3 Key10 3
KeyA Key1 Key4  4
KeyA Key2 Key7  5
KeyB Key3 Key9  6
KeyA Key2 Key8  9
KeyA Key1 Key5  9
KeyA Key1 Key6  10

目前,为了解决这个问题,我使用嵌套的foreach循环遍历哈希结构,并通过插入具有等于遍历路径的键的元素(例如“KeyA Key3 Key10”)来创建扁平哈希,并且值等于末尾的值.遍历路径(例如3),然后执行另一个foreach循环,按值对平顶散列进行排序.

有没有更有效的方法来做到这一点?

解决方法

考虑创建排序数组,而不是创建新哈希.迭代初始值,根据值,键值对插入到数组中,然后迭代生成的数组.对于最后一次迭代的每次插入O(n),这应该给出初始迭代O(lg n)的O(n).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读