递归实现二分查找

#!/usr/bin/env python 
# -*- coding: utf-8 -*-
# @Time : 2018-01-31 20:29
# @Author : hhj
# @Site :
# @File : 递归实现二分查找.py

通过递归实现斐波那契数列


# def func(arg1,arg2,stop):
# if arg1==0:
# print(arg1,arg2)
# arg3=arg1+arg2
# print(arg3)
# if arg3<stop:
# func(arg2,arg3,stop) #递归
#
#
# func(0,1,100)    #100出口
递归实现二分查找

def binary_search(data_source,find_n):
mid=int(len(data_source)/2)
if len(data_source)>1:   # 递归结束条件
if data_source[mid]>find_n: #要找的值在左边,即:data in left
print("data in left of [%s]" %data_source[mid])
# print(data_source[:mid])
binary_search(data_source[:mid],find_n) #做切片

elif data_source[mid] < find_n: # 要找的值在左边,即:data in right
print("data in right of [%s]" % data_source[mid])
# print(data_source[mid:])
binary_search(data_source[mid:],find_n) # 做切片

else: #若
print("found data:",data_source[mid])
else:
print("connot find .....")



if __name__=="__main__":

data=list(range(0,7000000))
# print(data)
binary_search(data,35666)

转载于:https://www.cnblogs.com/hhjwqh/p/8394958.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值