【演算法資料結構Java實現】折半查詢
1.背景
以一個題目為例,一個整數x是一組按大小順序排列好的數列中的一個數,我們要找到x在數列中的索引位置。
比如按從小到大排列的數列:
-3,-2,0,4,5,7,12,64
我們要找到數字7的位置,如果是線性查詢,時間複雜度是O(n),如果用折半查詢的話,時間複雜度是O(log(n)),因為每次折半,計算量少一半,所以取對數。
2.程式碼
package Algorithm_analysis;
public class Bisearch {
static int[] array={-3,-2,0,4,5,7,12,64};
public static void main(String args[]){
int left=0;
int right=array.length;
int center=0;
int k=7;
while(left<=right){
center=(right+left)/2;
if ((array[center]-k)==0){
System.out.print(center);
break;
}
else{
if((array[center]-k)>0){
right=center;
}
else{
left=center;
}
}
}
}
}
//輸出結果7
/********************************
* 本文來自部落格 “李博Garvin“
* 轉載請標明出處:http://blog.csdn.net/buptgshengod
******************************************/
相關文章
- java實現折半查詢。Java
- 【資料結構】折半查詢(二分查詢)資料結構
- 資料結構 折半查詢 swift的版本資料結構Swift
- BST查詢結構與折半查詢方法的實現與實驗比較
- 折半查詢(C++實現)C++
- 資料結構之查詢(順序、折半、分塊查詢,B樹、B+樹)資料結構
- 正確的折半查詢實現
- Java實現遞迴查詢樹結構Java遞迴
- 演算法-->折半查詢(快排)演算法
- 資料結構與演算法:查詢演算法資料結構演算法
- Java資料結構(十五)—— 多路查詢樹Java資料結構
- 查詢之折半查詢
- #查詢演算法#【1】簡單查詢:順序、折半查詢演算法
- 【演算法資料結構Java實現】歐幾里得演算法演算法資料結構Java
- 二分查詢【折半查詢】演算法 PHP 版演算法PHP
- 資料結構與演算法——常用高階資料結構及其Java實現資料結構演算法Java
- 演算法與資料結構-棧(Stack)-Java實現演算法資料結構Java
- 資料結構與演算法——二叉查詢樹類的C++實現資料結構演算法C++
- 資料結構與演算法-二分查詢資料結構演算法
- 【資料結構與演算法】—— 二分查詢資料結構演算法
- 資料結構與演算法——單詞查詢樹資料結構演算法
- 查詢與排序02,折半查詢排序
- 資料結構-單連結串列查詢按序號查詢資料結構
- 資料結構與演算法——二分查詢演算法資料結構演算法
- 23.資料結構 查詢資料結構
- 關於樹型結構資料遞迴查詢,轉非遞迴查詢的實現遞迴
- 資料結構與演算法-二叉查詢樹資料結構演算法
- 資料結構與演算法 第五章 查詢資料結構演算法
- Java實現資料結構之線性結構Java資料結構
- 資料結構與演算法整理總結---二分查詢資料結構演算法
- 資料結構與演算法——查詢演算法-斐波那契(黃金分割法)查詢資料結構演算法
- 重學資料結構(八、查詢)資料結構
- 資料結構之三大查詢資料結構
- 【演算法資料結構Java實現】Java實現動態規劃(揹包問題)演算法資料結構Java動態規劃
- C語言折半查詢C語言
- 『資料結構與演算法』二叉查詢樹(BST)資料結構演算法
- 資料結構和演算法之——二分查詢上資料結構演算法
- 資料結構和演算法之——二分查詢下資料結構演算法