PERL算法-加入子程序的堆排序

本文介绍了一种单线程环境下实现的大根堆和小根堆调整算法,并详细解释了如何通过简单修改实现从大根堆到小根堆的转换。此外,还探讨了利用Perl语言特性进行多列条件排序的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、引入模块(有些模块是没有必要的),单线程。

blob.png

数据格式:chr gene|exon|introns begin end 类型的数据。

大根堆调整算法。

这里$code() 等价了右孩子与左孩子的比对。

小根堆调整算法只需要将$code() > 0 和$code >= 0 替换为 $code < 0 和 $code <= 0 即可。

blob.png

小根堆调整算法


堆排序

blob.png

多列条件排序。这里优先为2、1、3列排序

blob.png

PS:

perl这种传递函数参数的特性和内置的$a、$b变量很方便的完成了多列条件比对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值