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