私は解決する必要があるこの問題を抱えています。私は答えを探しているのではなく、どこへ行くべきかについてのヒントを探しています。アルゴリズムはありますが、O(log n) ではありません。
二分木 T と、T のノード数以下の正の整数 k が与えられた場合、T の要素 v を特定する疑似コードを記述して、T の正確に k − 1 個の要素が v よりも小さくなるようにします。コードには時間がかかるはずです。 T の高さに最も比例します。
ここでの基本的な考え方は、最初に左側のツリーをチェックし、左側のツリーのサイズをチェックするというものです。左の木のサイズが k-1 より大きい場合は、左の検索を続けます。それ以外の場合は、右を検索します。左側のツリー全体に k-1 個の要素を持つノードが含まれていない場合は、右側のサブツリーを検索します。問題は、最悪の場合、ツリー内のすべてのノードを検索する必要があるため、これが O(log n) ではないことを知っていることです。
足りないものはありますか?ヒントやヘルプは素晴らしいものですが、答えだけを教えてはいけません。