演算法的計算效率一般通過將該演算法執行的基本操作的個數表達為演算法輸入的長度的函式來表示。這就是說,演算法的效率用從自然數集n到其自身的函式t來刻畫,t(n)是演算法在所有長度為n的輸入上執行的基本操作的最大個數。然而,函式t的形式有時嚴重地依賴於基本操作的具體定義。例如,在整數的加法中,基本操作既可以按照十進位制(以10為基數)也可以按照二進位制(以2為基數)來定義,但後者執行的基本操作個數是前者執行的基本操作個數的3倍還多。為了避免在基本操作的定義上糾纏不清而僅關注演算法的巨集觀行為,採用下面的記號十分有益。
《計算複雜性與演算法分析》和《計算複雜性》學習
今天偶然間碰到數學界著名的七大千禧難題,關注了p和np問題,但是裡面提到關於演算法的複雜性的描述已經超出了自己的知識範圍,我找到了一本書來彌補這個不足,即 計算複雜性與演算法分析 希望自己在看完這本書之後能夠對計算複雜性有完整的概念 首先看看它的目錄 其實大部分的知識都有接觸過,但是沒有形成體系 接...
計算複雜性理論
計算複雜性理論所研究的資源中最常見的是時間 要通過多少步演算才能解決問題 和空間 在解決問題時需要多少記憶體 其他資源亦可考慮,例如在平行計算中,需要多少並行處理器才能解決問題。時間複雜度是指在電腦科學與工程領域完成乙個演算法所需要的時間,是衡量乙個演算法優劣的重要引數。時間複雜度越小,說明該演算法...
決策樹 排序問題的計算複雜性
對排序演算法計算時間的分析可以遵循若干種不同的準則,通常以排序過程所需要的演算法步數作為度量,有時也以排序過程中所作的鍵比較次數作為度量。特別是當作一次鍵比較需要較長時間,例如,當鍵是較長的字串時,常以鍵比較次數作為排序演算法計算時間複雜性的度量。當排序時需要移動記錄,且記錄都很大時,還應該考慮記錄...