百度app下载整站seo排名费用价格
左值查找
在一组数据中查找出 数字x 在这组数据中第一次出现的索引并输出,没有找到则输出-1查找方式:二分查找
数据前提:一组数据要有序
一组数据:
arr = [2, 3, 3, 3, 5, 7, 9, 11, 13, 15, 17]
测试:
示例1:x = 3输出:1示例2:x = 4输出:-1
code:
def half_find_left(arr,x):l = 0r = len(arr)-1mid = 0;while l<=r:mid = l + (r-l) // 2if x == arr[mid]:r = mid - 1elif x < arr[mid]:r = mid - 1elif x > arr[mid]:l = mid + 1if arr[l] == x:return lelse:return -1arr = [2, 3, 3, 3, 5, 7, 9, 11, 13, 15, 17]
x = 3res = half_find_left(arr, x)
print(res)
右值查找
在一组数据中查找出 数字x 在这组数据中最后一次出现的索引并输出,没有找到则输出-1查找方式:二分查找
数据前提:一组数据要有序
一组数据:
arr = [2, 3, 3, 3, 5, 7, 9, 11, 13, 15, 17]
测试:
示例1:x = 3输出:3示例2:x = 6输出:-1
code:
def half_find_right(arr,x):l = 0r = len(arr)-1mid = 0;while l<=r:mid = l + (r-l) // 2if x == arr[mid]:l = mid + 1elif x < arr[mid]:r = mid - 1elif x > arr[mid]:l = mid + 1if arr[r] == x:return relse:return -1arr = [2, 3, 3, 3, 5, 7, 9, 11, 13, 15, 17]
x = 3res = half_find_right(arr, x)
print(res)
结束。
仅学习。