簡單查詢演算法時間複雜度

2021-10-03 17:50:58 字數 634 閱讀 9795

寫出兩種檢索演算法:在乙個排好序的陣列t[1…n]中查詢x,如果x在t中,輸出x在

t的下標j;如果x不在t中,輸出j=0.按實驗模板編寫,「分析」部分僅給出複雜度

結果即可。

順序查詢:順序查詢也稱為線形查詢,屬於無序查詢演算法。從資料結構線形表的一端開始,順序掃瞄,依次將掃瞄到的結點關鍵字與給定值k相比較,若相等則表示查詢成功;若掃瞄結束仍沒有找到關鍵字等於k的結點,表示查詢失敗。

二分查詢:也稱為是折半查詢,屬於有序查詢演算法。用給定值k先與中間結點的關鍵字比較,中間結點把線形表分成兩個子表,若相等則查詢成功;若不相等,再根據k與該中間結點關鍵字的比較結果確定下一步查詢哪個子表,這樣遞迴進行,直到查詢到或查詢結束發現表中沒有這樣的結點。

下面展示一些內聯**片

int sort1

(int x)

//順序查詢

if(i==n-1)

printf

("sort1:0\n");

}} int sort2

(int x)

//二分查詢

else

if(x(i+j)/2

])else

}return0;

}

簡單理解演算法時間複雜度

在電腦科學中,演算法的時間複雜度 time complexity 是乙個函式,它定性描述該演算法的執行時間。這是乙個代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,亦即考察輸入值大小趨近無窮時的情況。我們假...

演算法時間複雜度空間複雜度

演算法 是解決某一類問題的通法,即一系列清晰無歧義的計算指令。每個演算法只能解決具有特定特徵的一類問題,但乙個問題可由多個演算法解決。乙個演算法應該有以下五個方面的特性 比較演算法的優劣我們從兩個維度去進行考量 時間 空間 時間複雜度,空間複雜度 找出基本語句 演算法中執行次數最多的那條語句就是基本...

演算法 時間複雜度 空間複雜度

1 if i 1 2 a 1 result 3 4 result n 2 result 1000 1000 3 array.push a array.pop 4 map.set 1,1 map.get 1,1 在計算複雜度的時候,o 1 一般會被忽略。1 for let i 0 i n i 2 wh...