二分查詢又名折半查詢法,實現思路可以到網上找到,在此就不在說了。二分查詢有兩種實現方法,一種方法是:使用迴圈遍歷,結束條件是:low > high;另一種方法是:使用遞迴,結束條件也是:low > high。**如下:
public class binarysearchtest
sortutil.showarr(arr);
system.out.println(binarysearch(arr,data));
system.out.println(binarysearch(arr,0,arr.length - 1,data)); }
/*** 迴圈實現
* @param arr
* @param data
* @return
*/public static int binarysearch(int arr ,int data) else if (arr[mid] > data) else if (arr[mid] < data)
} return index; }
/*** 遞迴實現
* @param arr
* @param data
* @return
*/public static int binarysearch(int arr,int low,int high,int data) else if (low <= high && arr[mid] > data) else if (low <= high && arr[mid] < data) else
}}
使用到的工具類:sortutil **如下:
public final class sortutil ;
public static void showarr(int arr)
system.out.println();
}}
二分查詢的兩種實現
面試中經常會問到二分查詢,二分查詢的兩種實現 第一種是用遞迴實現的,第二種使用迴圈實現的。package com.lzw public class binary text t new text system.out.println 第一種二分查詢 system.out.println t.binar...
兩種二分查詢
給定按照非遞減序的陣列和關鍵字key,返回key在給定陣列中的下標,若不存在則返回 1。二分查詢的關鍵是控制好下標low和high,以及返回值。最後要返回的是下標low的值 比如給定排好序的陣列nums和要查詢的關鍵字key,返回關鍵字key在陣列中的下標。假設要查詢的關鍵字在陣列中存在。這兩個方法...
二分查詢的兩種C 實現
二分查詢 binary search 也叫折半查詢。應用它的前提是線性表中的記錄是關鍵碼有序的。基本思想是 在有序表中選取中間值作為比較物件,從而將查詢區間的大小減半,加快查詢速度,直到找到為止。如果我們將折半查詢的過程看做一顆二叉樹的繪製,那麼根據二叉樹的性質 具有n個節點的完全二叉樹的深度為 l...