簡體   English   中英

二分搜索樹中Java方法的成本

[英]Cost of a Java method in a binary-search-tree

我們有Java方法rangeQuery_count(BSTNode,int,int) 給定BST的根(鍵int)和間隔[a,b],此方法返回屬於該間隔的BST的鍵數。

static int rangeQuery_count(BSTNode v, int a, int b) { //a<=b
   if(v==null) return 0;
   if(v.key < a) return rangeQuery_count(v.right, a, b);
   else if(v.key > b) return rangeQuery_count(v.left, a, b);
   else return 1 + rangeQuery_count(v.right, a, b) + rangeQuery_count(v.left, a, b);
}

我必須根據BST的節點數n確定算法成本的漸近估計。 我剛剛開始研究這些主題,我想了解如何計算程序成本。

首先要認識到的是,成本取決於輸入參數的特定值,例如,取決於例如搜索樹中有多少個節點落在該間隔內。 此處所做的通常簡化假設是計算最壞的情況。 在這種情況下,就是樹中的所有節點都位於間隔內。 在這種情況下,只要v不為null,您將始終使用else的最后一個子句,您將訪問樹的每個節點一次,並且如果樹中有n個節點,則開銷將與n大致成線性增長。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM