指定された範囲で BST キーを印刷する実行時間を理解しようとしています。この例から理解しようとしましたが、理解できませんでした。
O(log n)
がどこから来ているのか理解できたと思います。これは、BST を再帰的に通過することによるものです。これはO(log n)
各側に必要ですが、次の点についてはわかりません。
はどこ
K
から来ているのか。印刷にかかる一定の時間ですか?はいの場合、ランタイムがO(log n)
+O(k)
ではないのはなぜですか。K を無視するよりもO(n)
in order traversal からの はどこにありますか? このランタイムにないためです。ツリーの両側の範囲に複数の値がある場合、ランタイムがどのように変化するか。たとえば、範囲が 4 からだった場合はどうなるでしょうか。