時間複雜度簡略分析

2021-10-20 18:09:36 字數 711 閱讀 7140

1、測試結果非常依賴測試環境

比如:硬體裝置的不同,會影響測試結果,同一段**,i3和i9的電腦,最終的測試結果是不同的

2、測試的結果受資料規模影響很大

比如:對於同乙個排序方法,待排序資料的有序度不一樣,測試結果也不一樣,極端情況:如果資料已經是有序的,那麼用排序演算法就會非常快

再比如:如果資料規模太小,往往也不能真實反映排序演算法的效能,這個時候插入排序也許比快速排序還要快

所以:我們需要乙個不用具體測試資料來測試就能夠粗略的估計演算法的執行效率的方法,這就是時間、空間複雜度分析方法

複雜度用o表示

簡要來說就是,隨著資料模型的不斷增加,執行程式所用時間的變化趨勢,就是時間複雜度,也成為漸進時間複雜度

簡單案例:

public int ss (int n){

int i = 0;

int sun = 0;

for(;i上述**:所用時間t(n)=n+2;當n的值無限大時,常數2就可以忽略了,所以所用時間t(n)=n,可見**執行時間跟資料規模n成正比,由此:t(n)=o(f(n))

public int ss (int n){

int i = 0;

int j = 0;

int sun = 0;

for(;i上述**:所用時間t(n)=2n²+2n+3,所以時間複雜度t(n)=o(n²)

未完待續。。。

複雜度分析 時間複雜度 空間複雜度

執行效率是演算法的乙個重要的考量指標,演算法的執行效率用時間 空間複雜度來衡量。今天我們來學習一下複雜度的分析。通常我們可以通過執行程式來獲得演算法的真正的執行時間,這種方法我們可以稱為事後統計法,但這種方法得到的是具體的資料,測試結果很依賴測試環境,而且受資料規模影像最大。因此,我們需要乙個不需要...

複雜度分析 時間複雜度分析和空間複雜度分析

其實,只要講到資料結構與演算法,就一定離不開時間 空間複雜度分析。而且我個人認為,複雜度分析是整個演算法學習的精髓,只要掌握了它,資料結構和演算法的內容基本上就掌握了一半。1.時間複雜度分析 對於剛才羅列的複雜度量級,我們可以粗略地分為兩類,多項式量級和非多項式量級。其中,非多項式量級只有兩個 o ...

複雜度分析(上)時間複雜度 空間複雜度

為了肉眼 實時 快速地來分析出 的複雜度,我們需要乙個不用具體的測試資料來測試,就可以粗略地估計演算法的執行效率的方法。時間複雜度 空間複雜度 表示演算法的執行時間與資料規模之間的增長關係。每行 對應的 cpu 執行的個數 執行的時間都不一樣,但是,我們這裡只是粗略估計,所以可以假設每行 執行的時間...