查找算法(1)--Sequential search--順序查找

1. 順序查找

  (1)說明
    順序查找適合於存儲結構爲順序存儲或連接存儲的線性表。
     (2)基本思想
    順序查找也稱爲線形查找,屬於無序查找算法。從數據結構線形表的一端開始,順序掃描,依次將掃描到的結點關鍵字與給定值k相比較,若相等則表示查找成功;若掃描結束仍沒有找到關鍵字等於k的結點,表示查找失敗。
  (3)複雜度分析:
     序中符號表,查找成功時的平均查找長度爲:(假設每一個數據元素的機率相等)
      ASL = 1/n(1+2+3+…+n) = (n+1)/2 ;
     當查找不成功時,須要n+1次比較,時間複雜度爲O(n);
     因此,順序查找的時間複雜度爲O(n)。算法

2.代碼

 

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);
}
相關文章
相關標籤/搜索