2

以前は、要素エントリをただの配列として定義していましHeap::Simpleた。これは、2 番目の並べ替えが必要なかったからです。

作成したヒープに配列参照を挿入するための要素を定義するためのセカンダリ ソートと関数を実装した後、挿入の実行時間が (かなり!) 増加しました。Heap::Simpleこれについては、以下のドキュメントで説明されています。Any

ただし、Any要素タイプを使用することの欠点を理解するのに苦労しています。追加の配列参照を作成する予定はありますか? key_insert実行時間を短縮するために使用する必要がありますか?

現在のコードは次のとおりです。

my $heap = Heap::Simple->new( order     => \&by_num_or_str,
                              elements  => [Function => \&first_two_slots]
                             );

sub by_num_or_str
{
    my ( $a, $b ) = @_;

    my $result = 
        $b->[0] <=> $a->[0]  #0-th element is a number
                ||
        $a->[1] cmp $b->[1]; #1-st element is a string

    return $result == -1;
}

sub first_two_slots 
{ 
    my $array_ref = shift; 
    return [ @$array_ref[0,1] ]; 
}

コンテキスト: Perl ヒープへの配列参照の挿入

4

0 に答える 0