python-使用递归实现二分法
在上一篇中简单介绍了递归的使用, 请戳这里 。 在此篇中,主要介绍如何用递归实现二分法。 在使用二分法之前,首先要有个前提,那就是这个数组必须是 有序数组 。主要的思路为: ①先取出数组中的一个中间值, 和我们需要找的数字进行对比,如果恰好相等,则说明找到该数字,如果数组的中间值大于需要查找的数组,接下来的查找范围就为中间值之前的数组。反之为中间值之后的数组 ②对数组不断的缩小范围,最后当数组中只有一个数字时,再进行比较,如果相等,则找到,否则需要查找的数字就不在我们的数组中。 代码如下: def binary_search(data_source, find_number): """定义二分法""" mid = int(len(data_source)/2) #先取数组中的中间值 if len(data_source) > 1: #判断整个数组中的数字个数 if data_source[mid] > find_number: print('data is left of %s' % data_source[mid]) binary_search(data_source[:mid], find_number) elif data_source[mid] < find_number: print('data is right of %s' % data_source[mid])