加減實現二分查詢

2021-07-22 13:15:15 字數 1237 閱讀 6382

}//定義最大的斐波拉契數列

final int max = 100;

//用來儲存斐波拉契數列

int a = new int[100];

//初始化斐波拉奇書數列

public void fib()

}//查詢資料

int binarysearch(int arr, int key)

}// system.out.println(a[7]+" "+pos);

//使用臨時陣列大小跟斐波拉奇數列的那個數字相同

int temp = new int[a[pos]];

//初始化temp陣列使得前面資料相同

for (int i = 0; i < arr.length; i++)

//超過陣列長度使用最後的數字填充

for (int i = arr.length; i < a[pos]; i++)

int lo = 0;

int high = temp.length - 1;

int mid = 0;

//pos需要大於0保證資料不會溢位

while (lo <= high && pos >= 2) else if (temp[mid] < key) else if (temp[mid] == key)

//找到分兩種情況,一種是跟最後的資料相同返回最後的資料位置即可,一種是返回找到的位置

if (mid < arr.length - 1)

return mid;

else

return arr.length - 1;

}return -1;}}

迭代二分查詢二分查詢

在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...

c 實現二分查詢

二分查詢又稱折半查詢,對排好序的陣列,每次取這個數和陣列中間的數進行比較,複雜度是 o logn 如 設陣列為 a n 查詢的數x,如果x a n 2 則返回 n 2 如果 x a n 2 則在 a 0 到a n 2 1 中進行查詢 如果x a n 2 則在a n 2 1 到a n 1 中進行查詢 ...

二分查詢法實現

查詢分為靜態查詢和動態查詢 靜態查詢主要包括順序查詢和二分查詢 折半查詢 順序查詢是我們常用的一種查詢方式,它有順序表的順序查詢和鍊錶的順序查詢,這兩部分在前面學習線性表時都有學習。二分查詢是一種針對有序表進行的查詢,其效率高,比較次數少。動態查詢是指可以對錶進行刪除和插入操作。主要以二叉排序樹為主...