二分查找

二分查找

# -*- coding: utf-8 -*-
# @Time : 2022/3/28 15:20
# @Author : chuqianyu
# @FileName: 二分查找2.py
# @Software: PyCharm
# @Blog :https://home.cnblogs.com/u/chuqianyu
class Solution:
def search(self, nums: list, target: int) -> int:
# write code here
# binarySearch
kk = Solution.binarySearch(self, nums, 0, len(nums) - 1, target)
return kk
# 暴力求解
# for i in range(len(nums)):
# if target == nums[i]:
# return i
# else:
# return -1
# binarySearch
def binarySearch(self, arr, m, n, x): # m,n为下标,所以n = len(arr)-1
if n >= m:
mid = m + ((n - m) >>1) # 等效为 mid = int(m + (n-m)/2) #int为向下取整
if arr[mid] == x:
return mid
elif arr[mid] > x:
return Solution.binarySearch(self, arr, m, mid - 1, x)
else:
return Solution.binarySearch(self, arr, mid + 1, n, x)
else:
return -1
if __name__ == "__main__":
print(int(3.5)) # 3向下取整
s = Solution()
x = int(input()) # 输入要查找的数
arr = list(map(int, input().strip().split())) # 有序数组
m = 0
n = len(arr) - 1
index = s.search(arr, x)
if index != -1:
print("元素在数组中的索引为 %d" % index)
else:
print("元素不在数组中")
posted @   楚千羽  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2021-05-09 Excel图表导出高清矢量位图片并裁剪的方法
点击右上角即可分享
微信分享提示