多语言展示
当前在线:139今日阅读:19今日分享:20

[Python3算法(1)] 二分查找算法[TZZ]

大家好!今天我给大家介绍一下“在Python3中实现二分查找算法”的代码实现过程。二分查找的输入是一个有序的线性表,每次查找是都选择列表的中间元素与目标元素比较,如果它们相等则返回该位置的索引,不相等则根据中间元素值的大小分别从列表的左侧或右侧继续执行以上的查找过程。根据其查找过程可知,实际上每次查找新列表时,变化的只是原列表的起始索引。如果您觉得这篇教程有帮助,请为我投上宝贵的一票(顺便求个“关注”),谢谢!
工具/原料
1

已安装PyCharm 2017.3(或以上版本的)软件;

2

已掌握“[Python3] 列表的基本用法[TZZ]”;

方法/步骤
1

启动PyCharm软件,新建一个名为“AlgorithmDemo1”的“Pure Python项目”。项目创建完毕后,向项目中添加一个名为“main”的Python文件;

2

在“main.py”文件中,根据“二分查找算法”的描述,实现一个名为“binary_search_asc”的二分查找函数。在该函数中,通过while循环和调整下次搜索列表的起始索引实现下一次二分查找任务(注:搜索左侧或右侧列表实际只要改变列表下标即可);

3

继续向“main.py”文件中添加测试代码。在这份代码中,随意定义了一个列表,然后将其按升序排序,随后调用binary_search_asc函数查找列表中的每个元素。代码编写完毕后,调试运行程序。在弹出的“Console”窗口中(将Console面板设置为“Windowed Mode”),可以见到输出的查找结果。可以与原列表比对确定代码是否编写正确;

4

关闭“Console”窗口返回到“main.py”文件中,继续添加“通过二分查找法在testList列表中查找从-10到10的元素位置”。代码编写完毕后,调试运行程序。在弹出的Console窗口中,可以见到输出的查找结果;

5

关闭Console窗口,返回到“main.py”文件中,定义一个名为“binary_search_dec”的二分查找函数。与“binary_search_asc”函数不同的是,该函数需要一个已降序排序的列表作为输入。在实现此函数时,需要注意下一个搜索列表的起始索引必须设置正确;

6

继续添加binary_search_dec函数的测试代码,然后调试运行程序。在弹出的Console窗口中,可以见到二分查找的结果列表;

8

继续添加binary_search函数的测试代码,然后调试运行程序。在弹出的Console窗口中,可以见到正确的查找结果列表;

9

至此,二分查找算法的代码已编写完毕!下一遍,我们一起研究一下“简单查找”和“二分查找”的快慢问题。Enjoy!

推荐信息