2
我有一個問題。在理論計算機科學方面,當我們分析一個算法時,如果一個算法初始化一個新的數據結構,那麼我們認爲這個數據結構是空間複雜度的一部分。初始化指針數據結構的空間複雜度
現在我不太確定這部分。
比方說,我有一個int
陣列,我想通過使用int
指針的地圖來映射它們。如如果該算法沒有使用指針
std::map<int*,int*> mymap;
for (int i = 1; i < arraySize; i++) {
mymap[&arr[i-1]]=&arr[i];
}
,那麼我們就可以清楚地表明它正在初始化一個地圖,其中n的大小,因此,空間複雜度是O(n),然而對於這種情況,我們在哪裏使用指針,這個算法的空間複雜度是多少?
我想我明白了。 我在想方式,我們沒有初始化堆棧級別的新變量,但分配指針佔用堆空間。所以我們也考慮一個,對吧? –
@SarpKaya正確的空間複雜度考慮了堆,堆棧和靜態內存。 – dasblinkenlight