查詢演算法之順序查詢

2021-10-07 15:35:50 字數 601 閱讀 1234

順序查詢又稱為線性查詢,查詢過程為:從陣列的第乙個位置(或最後乙個位置)開始,遍歷整個陣列,對下標索引對應的值與要查詢的值進行比較,如果相等,則查詢成功,返回下標值;如果遍歷完整個陣列,下標對應的值與要查詢的值都不等,則查詢不成功,返回-1。

演算法實現:

public int search_seq(int array,int searchkey)

}return -1; //查詢失敗,返回-1

}

演算法優化:

該演算法由於每次迴圈都要判斷是否越界(判斷i是否小於array.length),可以進一步優化。我們可以設定乙個哨兵,來解決這個問題。

public int search_seq(int array,int searchkey)

if(i == 0)

return i; //查詢成功,返回陣列下標

}

演算法時間複雜度:

該演算法最好的情況下是從開始遍歷的第乙個位置就找到了,時間複雜度為o(1),最壞的情況下是最後乙個位置找到,需要進行n次比較,時間複雜度為o(n)。

平均時間複雜度為o((n+1)/2),為o(n)。

查詢演算法之順序查詢

演算法思想 順序查詢演算法是一種較為簡單的演算法,它把待查詢的所有序列元素都遍歷一遍,直到查詢到該關鍵字為止。時間複雜度最壞的情況下為o n 時間複雜度最好的情況下為o 1 順序查詢演算法實現 author qiu public class ordersearch 待查詢陣列 int key 8 待...

查詢演算法之順序查詢

對順序儲存的資料進行查詢,最簡單的演算法就是從頭開始,逐個檢查。若能夠在表中找到與給定關鍵字匹配的元素,則查詢成功,否則查詢失敗。這個演算法可以非常簡單的得以實現 typedef struct s eletype typedef struct s list int search s list lst...

查詢演算法之順序查詢Python

查詢演算法中最直觀最容易理解的就是順序查詢了,思路比較簡單,就是在順序表 包括鍊錶 中按次序逐個比較,直到找到或者遍歷完線性表。關鍵點是順序遍歷。def sequentialsearch alist,item pos 0 found false while pos len alist and not...