C 語言順序表查詢和折半查詢

2021-09-30 13:58:19 字數 695 閱讀 2177

順序查詢

查詢最好的情況是在第乙個位置找到了,演算法時間複雜度為o(1)

最壞的情況下在最後乙個位置,需要n次比較,時間複雜度為o(n)

查不到,需要比較n+1次,時間複雜度為o(n+1)

關鍵字在任何乙個位置上是相同的,所以平均查詢次數為(n+1)/2

最終時間複雜度為o(n)

//n 陣列長度,key 查詢關鍵字,a為陣列

int sequential_search(int key,int n,int *a)

return 0;

}

改進的演算法,設定哨兵,效率比第乙個高

int seqential_search_new(int key,int n,int *a) 

return i;/*返回0 則查詢失敗*/

}

折半查詢,又稱二分查詢

基本思想是在有序表中,取中間記錄最為比較物件。若查詢值與中間記錄值相等,則查詢成功;

否則小於中間值,則在左半區繼續查詢;大於中間值在右半區查詢

int binary_search(int *a,int n,int key)

return 0;

}

順序表的順序查詢和折半查詢

順序查詢 include using namespace std intseqsearch int r,int n,int k return i int main int k cout 請輸入要查詢的數 k for int i 1 i n i cout 該數在陣列中的位置為 cout seqsear...

C語言資料結構順序表的順序查詢和折半查詢的功能

順序查詢演算法 又稱為線性查詢,主要用在 線性表 中進行查詢 通常分為 1 無序線性表的一般查詢 2 對關鍵字有序的順序表查詢 優缺點分析 缺點 當線性表的表長過於長時,平均查詢長度較大,效率低。優點 對順序表中資料元素的儲存沒有要求,順序儲存鏈式儲存均可。需注意 對於線性表的鏈式儲存只能使用順序查...

順序查詢和折半查詢

順序查詢可以是線性表也可以是鍊錶,同是既可以是有序的也可以是無序。折半查詢僅適用於有序的線性表 include include define elemtype inttypedef struct sstable 表的資料結構 void creatss sstable st 建立線性表 void pr...