二分查找
二分查找
# -*- 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("元素不在数组中")
作者:楚千羽
出处:https://www.cnblogs.com/chuqianyu/
本文来自博客园,本文作者:楚千羽,转载请注明原文链接:https://www.cnblogs.com/chuqianyu/p/16247769.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2021-05-09 Excel图表导出高清矢量位图片并裁剪的方法