我今天刚刚上了一堂关于复杂性和大 O 的课,但并没有真正了解它。所以我试图从我之前的程序中计算出一些方法的复杂性。
这是我尝试的第一种方法:
public V get(String key) {
int hash_val = hash(key);
return find(hash_val, 0, key);
}
所以这个方法:
- 获取与键关联的值。
-如果key不存在则返回null(比较每个key是否存在)
所以对于这个方法,我认为它会在 O(1) 时间内运行。
这是第二种方法:
public void put(String key, V value) {
if (getLoadFactor() > maxLoad) {
resize();
}
int hash_val = hash(key);
hash_val = findEmpty(hash_val,0,key);
arr[hash_val] = new Pair(key, value);
itemCount++;
}
对于第二种方法,我不知道如何去做。
任何人都可以帮助和解释它,以便我可以更好地理解?
谢谢