以前は、要素エントリをただの配列として定義していまし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 ヒープへの配列参照の挿入