以下代码使用java语言编写,但是思想各语言通用
普通遍历查找
//普通遍历查找
public static int search(int[] arr, int target){
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target)
return i;
}
return -1;
}
二分法循环实现
public static int binSearch(int[] arr, int target) {
if (arr == null)
return -1;
int begin = 0;
int end = arr.length - 1;
int mid;
while (begin <= end){
mid = (begin + end)/2;
if (arr[mid] == target)
return mid;
else if (arr[mid] < target)
begin = mid + 1;
else
end = mid - 1;
}
return -1;
}
二分法递归实现
public static int reBinSearch(int[] arr, int begin, int end, int target){
if (begin > end)
return -1;
int mid = (begin + end)/2;
if (arr[mid] == target)
return mid;
else if (arr[mid] < target)
return reBinSearch(arr, mid + 1, end,target);
else
return reBinSearch(arr, begin, end - 1, target);
}