1 Star 0 Fork 0

蓝桥云课/python-100

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
051-search_array.py 1.45 KB
一键复制 编辑 原始数据 按行查看 历史
xiaoyi733112 提交于 2020-02-24 16:11 . python-100 answer
class Array(object):
def search_sorted_array(self, array, val):
if array is None or val is None:
raise TypeError('array or val cannot be None')
if not array:
return None
return self._search_sorted_array(array, val, start=0, end=len(array) - 1)
def _search_sorted_array(self, array, val, start, end):
if end < start:
return None
mid = (start + end) // 2
if array[mid] == val:
return mid
# Left side is sorted
if array[start] < array[mid]:
if array[start] <= val < array[mid]:
return self._search_sorted_array(array, val, start, mid - 1)
else:
return self._search_sorted_array(array, val, mid + 1, end)
# Right side is sorted
elif array[start] > array[mid]:
if array[mid] < val <= array[end]:
return self._search_sorted_array(array, val, mid + 1, end)
else:
return self._search_sorted_array(array, val, start, mid - 1)
# Duplicates
else:
if array[mid] != array[end]:
return self._search_sorted_array(array, val, mid + 1, end)
else:
result = self._search_sorted_array(array, val, start, mid - 1)
if result != None:
return result
else:
return self._search_sorted_array(array, val, mid + 1, end)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/lanqiao-courses/python-100.git
git@gitee.com:lanqiao-courses/python-100.git
lanqiao-courses
python-100
python-100
master

搜索帮助