[Python3算法(5)] 递归实现二分查找算法[TZZ]

2024-10-14 00:32:48

1、启动PyCharm软件,新建一个名为“AlgorithmDemo5”的“Pure Python项目”,然后向项目中添加一个名为“main.py”的Python文件(具体步骤请参考引用教程);

2、在main.py文件中定义一个“binary_search_val_asc函数”,毋队末哎它需要传入一个升序排序的列表、指示该列表中子列表的起始索引位置和需要查找值。该函数采用递归方式实现二分查找过程,其查找过程与普通的二分查找类似,仅仅是在处理子列表时采用了递归调用。另外,需要注意子列表是否为空的检测,它是在调用下次递归之前进行的;

[Python3算法(5)] 递归实现二分查找算法[TZZ]

4、继续在main.py文件中定义二分查找函数binary_search_rec。该函数封装了前两个函数的功能,其调用接口更加的简洁;

[Python3算法(5)] 递归实现二分查找算法[TZZ]

6、测试代码编写完毕后,调试运行程序。在弹出的控制台窗口中,可以见到打印的查找结果。与之前打印的升序列表对比,人工检测算法是否处理正确;

[Python3算法(5)] 递归实现二分查找算法[TZZ]

8、在弹出的控制台窗口中,可以见到输出的查找结果。通过人工将结果与降序列表核对,可以确定算法是否执行正确;

[Python3算法(5)] 递归实现二分查找算法[TZZ]

9、递归二分查找算法代码的实现要点是检测子列表是否为空,即子列表索引的开始索引大于结束索引或者结束索引小于开始索引。另一个小技巧就是用一个接口更简洁的函数充当外观函数,这样用户使用起来会更方便。Enjoy!

猜你喜欢