sub heapSort{ my %hashMap=@_; my $heap = Heap::Fibonacci::Fast->new(); my $num = 0; foreach my $kk (keys %hashMap) { my $k = $hashMap{$kk}; my $v = $kk; if( $num < 1000 ){ $heap->key_insert($k,$v); $num ++; }else{ my $top_key = $heap->top_key(); if( $k > $top_key){ $heap->extract_top(); $heap->key_insert($k,$v); } } } my $k_top; my $v_top; my @rstRank=(); while( defined( $k_top = $heap->top_key())) { $v_top = $heap->extract_top(); my $count = $k_top; my $name = $v_top; my $v = {"name"=>$name,"count"=>$count}; push(@rstRank,$v); } @rstRank; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。