关于二分搜索的任何提示?

时间:2017-01-31 05:12:00

标签: python

我不想要答案。有人可以给我一个如何解决这个问题的提示吗?感谢。

练习10
要检查单词是否在单词列表中,您可以使用in运算符,但它会很慢,因为它会按顺序搜索单词。 因为单词是按字母顺序排列的,所以我们可以通过二分搜索(也称为二分搜索)来加快速度,这类似于在字典中查找单词时的操作。从中间开始,检查您要查找的单词是否位于列表中间的单词之前。如果是这样,您以相同的方式搜索列表的前半部分。否则你会搜索下半场。

无论哪种方式,您都将剩余的搜索空间减半。如果单词列表有113,809个单词,则需要大约17个步骤才能找到该单词或得出结论它不在那里。

编写一个名为in_bisect的函数,它接受一个排序列表和一个目标值,并返回列表中值的索引(如果它在那里),如果不存在,则返回None。

1 个答案:

答案 0 :(得分:-1)

有一个用于执行此操作的python库:bisect库。

在这种情况下需要一种通用的编程范例。鉴于你已经给出了问题,我猜这个范例已经在课堂上讨论过了。它以“r”开头。

一旦你得到它,它看起来会很酷。