1. 程式人生 > 其它 >(十六)查詢演算法

(十六)查詢演算法

1.查詢演算法介紹

在 java 中,我們常用的查詢有四種:

  1. 順序(線性)查詢
  2. 二分查詢/折半查詢
  3. 插值查詢
  4. 斐波那契查詢

2.線性查詢演算法

有一個數列: {1,8, 10, 89, 1000, 1234} ,判斷數列中是否包含此名稱【順序查詢】 要求: 如果找到了,就提示找到,並給出下標值。

  • 程式碼實現
public class SeqSearch {

  public static void main(String[] args) {
    int arr[] = { 1, 9, 11, -1, 34, 89 };// 沒有順序的陣列
    int index = seqSearch(arr, -11);
    if(index == -1) {
      System.out.println("沒有找到到");
    } else {
      System.out.println("找到,下標為=" + index);
    }
  }

  /**
    * 這裡我們實現的線性查詢是找到一個滿足條件的值,就返回
    * @param arr
    * @param value
    * @return
    */
  public static int seqSearch(int[] arr, int value) {
    // 線性查詢是逐一比對,發現有相同值,就返回下標
    for (int i = 0; i < arr.length; i++) {
      if(arr[i] == value) {
        return i;
      }
    }
    return -1;
  }

}