1. 程式人生 > >PERL演算法-加入子程式的堆排序

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

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變數很方便的完成了多列條件比對。