2013-07-30 90 views
3

我聽說有關爲二元搜索添加額外要求(例如)的情況可稱爲增強的情況。擴增在計算機科學中意味着什麼?

被認爲是增強算法的複雜性是否有所增加?

感謝

+0

也許這個問題應該遷移到http://programmers.stackexchange.com?這是一個非常有用的問題,因爲在任何地方似乎都沒有明確的增強定義,並且在搜索谷歌搜索'[增強計算機科學]時出現此問題(https://www.google.com/search?q=增強+電腦+科學)' – icc97

回答

3

擴充通常意味着擴展名稱。在計算機科學中,有許多根本性的,經過深入研究的概念,算法或數據結構。這些概念對解決許多實際問題至關重要,但有時您必須爲主要思想添加一些附加功能。

讓我們假設你想要用標準插入/刪除來管理一組數字,此外,你想有效地計算集合中小於給定數字k的項目數量。

爲了做到這一點,您可以實現一個標準(平衡)二叉搜索樹,此外,在每個節點中存儲該節點的左子樹中的節點數量(表示較小項目的數量)並在插入/刪除過程中跟蹤該計數器。然後如果你想返回小於k的項目數,你只需在樹中找到k,然後返回k的計數器。這是一個增強。

+0

'增強'被解釋爲我'加強'看到這個[評論](http://stackoverflow.com/questions/14994391/how-do-i-think-in-angularjs-if -i-have-a-jquery-background/15012542?noredirect = 1#comment29088343_15012542) – icc97

+0

@ icc97是的,但我認爲'extension'是一個更合適的詞 – pkacprzak

1

我不會限制增加了複雜性,但每除了東西(如Augumented Realtity)可以被稱爲「增強」。我從來沒有在計算機科學中看到任何明確的「擴充」定義,我懷疑是否有這樣的定義。