二分查找算法之python实现

二分查找也叫折半查找,通过不断比较目标元素与一个有序序列(注意是有序序列)中间元素的值,达到每次查找都能排除一半元素的一种算法。

python实现如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import random

unsortedList=[]

# generate an unsorted list
def generateUnsortedList(num):
	for i in range(0,num):
		unsortedList.append(random.randint(0,100))
	print unsortedList

def binarySearch(target,sortedList):
	list_length=len(sortedList)
	start,end=0,list_length-1
	if list_length==0:
		print 'empty list'
		return -1
	while start<end:
		middle=(start+end)/2
		if target==sortedList[middle]:
			print 'find index:',middle
			return middle
		elif target<sortedList[middle]:
			end=middle-1
		else:
			start=middle+1
	print 'not find'
	return -1


generateUnsortedList(20)
sortedList=sorted(unsortedList)
print sortedList

binarySearch(14,sortedList)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值