今天分享的主题内容是:二分查找法。 在开启今天分享的内容之前,我们一起先来了解除法相关的运算符知识。 Python中与除法相关的三个运算符是和和:,这是传统的除法,522。5,在Python中,这个叫地板除,942,这个是取模操作,也就是取余数,420,521 1、什么是二分查找法 二分查找也称折半查找(BinarySearch),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 2、实现原理 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功; 否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。 重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。 3、Python代码实现1定义一个二分查找的普通方法,传入两个参数,一个是列表list1,一个是要查找的值value2defbinarysearchnormal(list1,value):3拿到列表的长度4lengthlen(list1)5列表的开始值索引6start07列表的结束值索引8endlength19while循环遍历10whilestartend:11获取列表中间位的索引值12middle(endstart)213判断中间位的值是否等于要查找的值value14if(list1〔middle〕value):15找到了匹配的值就返回True16returnTrue17判断中间位的值大于要查找的值value时18elif(list1〔middle〕value):19就将列表结束值的索引调整为中间位索引值120endmiddle121else:22否则就是将列表开始值的索引调整为中间位索引值123startmiddle124找不到时就返回False25returnFalse262728定义一个二分查找的递归方法,传入两个参数,一个是列表list2,一个是要查找的值value29defbinarysearchrecursion(list2,value):30获取列表的长度31lengthlen(list2)32获取列表的中间位索引值33middlelength234递归结束的条件35iflength0:36returnFalse37查找到了就返回True38if(list2〔middle〕value):39returnTrue40如果中间位的值小于value,则递归调用,传入的是中间位到结束位的列表和要查找的值41elif(list2〔middle〕value):42returnbinarysearchrecursion(list2〔middle:〕,value)43如果中间位的值大于value,则递归调用,传入的是从开始位到中间位的列表和要查找的值44else:45returnbinarysearchrecursion(list2〔0:middle〕,value)4647ifnamemain:48print(92)49print(binarysearchnormal(〔4,5,6,7,8,8,9,0〕,19))50print(binarysearchrecursion(〔22,33,55,66,77,88,99〕,22))结语: 今天的分享就到这里了,感兴趣的小伙伴可以通过以上代码进行实操,以加深对二分查找法的理解。