二分搜索(JAVA & Python)

来源:互联网 发布:数据挖掘图片 编辑:程序博客网 时间:2024/06/06 03:59

二分查找的思想非常简单,这里就不过多介绍了,直接上代码


JAVA:

//递归实现public static int binary_Search(int arr[], int start, int end, int key) {int mid = (start + end) / 2;if (start > end) {return -1;}if (arr[mid] == key) {return mid;} else if (arr[mid] > key) {return binary_Search(arr, start, mid - 1, key);} else {return binary_Search(arr, mid + 1, end, key);}}
//循环实现private int binary(int []arr,int start,int end,int key) {while(start<=end){int mid = (start + end)>>1;if(arr[mid]==key) return mid;else if (arr[mid]>key) end = mid-1;else start = mid+1;}return -1;}

Python

def binary_search(arr,key):if (len(arr)==1): print("not found!!")return -1;mid = int(len(arr)/2)if(arr[mid]==key):print("find!!!")return mid;elif arr[mid]>key:return binary_search(arr[:mid], key)else: return binary_search(arr[mid:], key)




1 0