python二分查询:
import math
#二分查询(使用有序列表) def binary_sear(list, item): low = 0 high = len(list) - 1 while (low <= high): mid = math.ceil((low + high) / 2) search = list[mid] if (search == item): return mid elif (search > item): high = mid - 1; else: low = mid + 1; return None; lists = [1,2,3,4,5,6,7] print(binary_sear(lists, 4))php二分查询:
function binary_sear($arr, $val)
{ $low = 0; $high = count($arr) - 1; while($low <= $high) { $mid = ceil(($high+$low)/2); $search = $arr[$mid]; if ($search == $val) { return $mid; } elseif ($search > $val) { $high = $mid - 1; } else { $low = $mid + 1; } } }$arr = [1,2,3,4,5,6,7];
var_dump(binary_sear($arr, 4));php和python的写法 方便不会python的童鞋看