二分查詢演算法的非遞迴方式和遞迴方式

2021-10-20 17:57:16 字數 779 閱讀 4812

/**

* 二分查詢非遞迴方式實現

** @param arr 要查詢的陣列

* @param target 要查詢的值

* @return 找到返回target再陣列中的索引值 沒找到返回-1

*/public

static

intbinarysearch

(int

arr,

int target)

if(target < arr[mid]

)else

}return-1

;}

/**

* 二分查詢遞迴的方式實現

* @param arr 需要查詢的陣列

* @param target 需要查詢的數字

* @param left 陣列的左索引

* @param right 陣列的右索引

* @return 找到返回下標 沒有返回-1

*/public

static

intbinarysearchrecur

(int

arr,

int target,

int left,

int right)

int mid =

(left + right)/2

;if(target == arr[mid])if

(target < arr[mid]

)else

}

二分查詢的遞迴和非遞迴方式

1.典型的二分查詢的兩種方式 注意二分查詢的適用條件是遞增的陣列 1 遞迴方式 class binarytree system.out.println search a,12,0,a.length 1 public static int search int a,int data,int low,i...

二分查詢演算法(遞迴 非遞迴)

二分查詢 binary search 先來個比較官方的解釋 二分搜尋 英語 binary search 也稱折半搜尋 英語 half interval search 對數搜尋 英語 logarithmic search 是一種在有序陣列中查詢某一特定元素的搜尋演算法。搜尋過程從陣列的中間元素開始,如...

二分查詢演算法(遞迴 非遞迴)

二分查詢是針對有序序列來說的,在有序序列中使用二分查詢能大大提高查詢效率。首先確定整個查詢區間的中間位置 mid 用待查關鍵字key值與中間位置的關鍵字值進行比較 若相等,則查詢成功 若大於,則在後 右 半個區域繼續進行折半查詢 若小於,則在前 左 半個區域繼續進行折半查詢 對確定的縮小區域再按折半...