Python 关于二分法搜索有什么提示吗?

Python 关于二分法搜索有什么提示吗?,python,Python,我不想要答案。有人能给我一个如何解决这个问题的提示吗?谢谢 练习10 要检查单词列表中是否有单词,可以使用in运算符,但速度较慢,因为它会按顺序搜索单词。 因为单词是按字母顺序排列的,所以我们可以通过对分搜索(也称为二进制搜索)来加快搜索速度,这类似于在字典中查找单词时所做的操作。你从中间开始,检查你正在寻找的单词是否出现在列表中间的单词之前。如果是这样,您可以用同样的方法搜索列表的前半部分。否则,您将搜索下半部分 无论哪种方式,您都可以将剩余的搜索空间减半。如果单词列表中有113809个单词,

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

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

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


编写一个名为in_bisect的函数,该函数接受一个排序列表和一个目标值,如果列表中有值,则返回该值的索引;如果列表中没有值,则返回该值的索引。

有一个python库可以执行此操作:该库

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


一旦你得到它,它看起来就很酷。“提示”实际上是在你的任务中拼写出来的:“你从中间开始,检查你所寻找的单词是否在列表中间的单词之前。如果是这样,你用同样的方式搜索列表的前半部分。否则你会搜索下半部。”你在把它写进代码时有什么特别的问题吗?你试过什么?是的,对不起。我的问题是翻译成代码。这是一个非常普遍的问题,唯一能帮助你的方法就是为你编写代码。这就是为什么我要问——你的具体问题是什么?(另外,“编写一个名为_bisect的函数,该函数接受一个排序列表和一个目标值,如果列表中有值,则返回该值的索引;如果列表中没有值,则返回该值的索引。”这是另一个“提示”,至少为您提供了要实现的函数的框架。从这里开始。)您可以编辑OP以添加生成的代码,或者问更具体的问题。获取

x=len(排序列表)/2
并选中
sorted\u列表[x]
。在这之后,获取列表的左部分
sorted\u list=sorted\u list[:x]
或右部分
sorted\u list=sorted\u list[x+1::]
并重复所有内容。你可以在stackoverflow上找到大量的示例,例如尝试替代关键字
二进制搜索
,你可以从谷歌搜索中获得更多点击率