今天我們來談一下如何計算時間複雜度。
同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。
電腦科學中,演算法的時間複雜度是乙個函式,它定量描述了該演算法的執行時間。這是乙個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。
/**
* 計算時間複雜度
* * @author ray
* */
public class test
private void test2(int n)
// 總操作=n*1=n
// 時間複雜度=o(1)
} private void test3(int n)
} // 總操作=n*n*1=n^2
// 時間複雜度=o(n^2)
} private void test4(int n)
} // 總操作=(n+1)n/2=n^2/2+n/2
// 由於時間複雜度是乙個抽象的概念,當n的規模達到一定程度的時候,時間複雜度只取最高次冪,而且忽略其他次要項和係數
// 時間複雜度=o(n^2)
} private void test5(int n)
} // 總操作=(n+1)n/2*2=n^2+n
// 由於時間複雜度是乙個抽象的概念,當n的規模達到一定程度的時候,時間複雜度只取最高次冪,而且忽略其他次要項和係數
// 時間複雜度=o(n^2)
} private void test6(int n)
} // 總操作=(n+1)n/2*3=n^2*3/2+n*3/2
// 由於時間複雜度是乙個抽象的概念,當n的規模達到一定程度的時候,時間複雜度只取最高次冪,而且忽略其他次要項和係數
// 時間複雜度=o(n^2)
} private void test7(int n)
}} // 總操作==n^3+2n^2
// 由於時間複雜度是乙個抽象的概念,當n的規模達到一定程度的時候,時間複雜度只取最高次冪,而且忽略其他次要項和係數
// 時間複雜度=o(n^3)
} public static void main(string args)
}
資料結構與演算法 演算法與時間複雜度
演算法的五大特性 1.輸入,0 個或多個 2.輸入 1 個或多個 3.有窮性 4.確定性 5.可行性 如果乙個演算法執行效率 步驟 標記成 t n n 3 2 那麼這個2 可以看作乙個常數 k 就可以寫成 t n n 3 k 可以看出,如果改變常數k的值,並不會影響 t n 這個函式在座標軸的走勢,...
演算法與資料結構 時間複雜度
複雜度是衡量乙個演算法效率高低的乙個重要的因素,一般分為時間複雜度和空間複雜度。空間複雜度,一般在排序等 抽象資料型別的運算和物理實現 有關。本篇主要介紹時間複雜度的一些概念。我們在ram模型 1 記憶體無限大 2 基本運算o 1 下面考慮接下來的內容。準確的說,演算法的複雜性是執行演算法所需要的計...
資料結構筆記(演算法時間複雜度計算)
時間複雜度 乙個語句的頻度是指該語句在演算法中被重複執行的次數。演算法中所有語句的頻度之和記作 t n 它是演算法的問題規模 n 的函式,時間複雜度主要分析 t n 的數量級。演算法中基本運算 最深層迴圈內的語句 的頻度與 t n 同數量級,因此通常採用演算法中基本運算的頻度 f n 來分析演算法的...