二分查找python实现代码_二分查找——Python实现

一、排序思想

二、python实现

def binarySearchDemo(arr, key):

"""

python二分查找非递归方式

:param arr:待排序列,有序集合

:param key:带查找元素

"""

low = 0

high = len(arr) - 1

while low <= high:

mid = (low + high) // 2

if key > arr[mid]:

low = mid + 1

elif key < arr[mid]:

high = mid - 1

else:

return mid

return -1

def binarySearchDemo2(arr, start, end, key):

"""

python二分查找递归方式

:param arr:待排序列,有序集合

:param start:待排序列,开始位置

:param end:待排序列,结束位置

:param key:带查找元素

"""

if start > end:

return -1

mid = (start + end) // 2

if key > arr[mid]:

return binarySearchDemo2(arr, mid + 1, end, key)

elif key < arr[mid]:

return binarySearchDemo2(arr, start, mid - 1, key)

else:

return mid

nums = [6, 12, 33, 87, 90, 97, 108, 561]

# 非递归实现

print(binarySearchDemo(nums, 90))

# 递归实现

print(binarySearchDemo2(nums, 0, len(nums) - 1, 90))

二分查找-python

约12年年底的时候,接触了python不到半年的样子,入门是直接实现GUI测试case的.今天面试地平线机器人,发现忘得差不多了- -. 当时的问题是这样的 写一个二分查找是实现,我好像不记得二分查找 ...

线性查找与二分查找(python)

# -*- coding: utf-8 -*- number_list = [0, 1, 2, 3, 4, 5, 6, 7] def linear_search(value, iterable): f ...

二分查找 python实现

欢迎回来 [^first blood]. 要求A是升序数组 递归 只能查 数据存不存在,不能返回下标 def binary_find(A, m): if len(A) == 0: return -1 ...

算法:二分查找(python版)

#!/usr/bin/env python #coding -*- utf:8 -*- #二分查找#时间复杂度O(logn)#一个时间常量O(1)将问题的规模缩小一半,则O(logn) import ...

python算法之二分查找

说明:大部分代码是在网上找到的,好几个代码思路总结出来的 通常写算法,习惯用C语言写,显得思路清晰.可是假设一旦把思路确定下来,并且又不想打草稿.想高速写下来看看效果,还是python写的比較快.也看 ...

python函数(4):递归函数及二分查找算法

人理解循环,神理解递归!  一.递归的定义 def story(): s = """ 从前有个山,山里有座庙,庙里老和尚讲故事, 讲的什么呢? ""& ...

python实现二分查找算法

二分查找算法也成为折半算法,对数搜索算法,一会中在有序数组中查找特定一个元素的搜索算法.搜索过程是从数组中间元素开始的 如果中间元素正好是要查找的元素,则搜索过程结束:如果查找的数大于中间数,则在数组 ...

Python实现二分查找

老生常谈的算法了. #!/usr/bin/python # -*- coding:utf-8 -*- # Filename: demo.py # 用python实现二分查找 def binarySea ...

python关于二分查找

楔子 如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72 ...

随机推荐

paip.spring3 mvc servlet的配置以及使用最佳实践

paip.spring3 mvc servlet的配置以及使用最佳实践 1. Web.xml 1 2. springMVC.xml 2 1. mvcAction .mvcAction 2 2. Res ...

WPF下递归生成树形数据绑定到TreeView上

最终效果图:(用于学习类的效果 图片丑了点,看官莫怪) 新建窗体 然后在前端适当位置插入如下代码:

Java代码调用存储过程和存储方法

准备一个oracle 的JDBC jar 包:ojdbc14_11g.jar 首先找到你的 oracle 安装位置,例如: 1.创建一个JDBC数据库连接工具类: package com.test.d ...

Java Monitoring&;Troubleshooting Tools

JDK Tools and Utilities Monitoring Tools You can use the following tools to monitor JVM performance ...

你可能感兴趣的:(二分查找python实现代码)