(1)說明
順序查找適合於存儲結構爲順序存儲或連接存儲的線性表。
(2)基本思想
順序查找也稱爲線形查找,屬於無序查找算法。從數據結構線形表的一端開始,順序掃描,依次將掃描到的結點關鍵字與給定值k相比較,若相等則表示查找成功;若掃描結束仍沒有找到關鍵字等於k的結點,表示查找失敗。
(3)複雜度分析:
序中符號表,查找成功時的平均查找長度爲:(假設每一個數據元素的機率相等)
ASL = 1/n(1+2+3+…+n) = (n+1)/2 ;
當查找不成功時,須要n+1次比較,時間複雜度爲O(n);
因此,順序查找的時間複雜度爲O(n)。算法
public static int SequenceSearch(int a[], int value){ int i; for(i=0; i<a.length; i++) if(a[i]==value) return i; return -1; } public static void main(String[] args) { int[] a = { 49, 38, 65, 197, 76, 213, 27, 50 }; int num= SequenceSearch(a,213); System.out.println("數組的下標是:"+num); }