我不想要答案。有人可以给我一个如何解决这个问题的提示吗?感谢。
练习10
要检查单词是否在单词列表中,您可以使用in运算符,但它会很慢,因为它会按顺序搜索单词。
因为单词是按字母顺序排列的,所以我们可以通过二分搜索(也称为二分搜索)来加快速度,这类似于在字典中查找单词时的操作。从中间开始,检查您要查找的单词是否位于列表中间的单词之前。如果是这样,您以相同的方式搜索列表的前半部分。否则你会搜索下半场。
无论哪种方式,您都将剩余的搜索空间减半。如果单词列表有113,809个单词,则需要大约17个步骤才能找到该单词或得出结论它不在那里。
编写一个名为in_bisect的函数,它接受一个排序列表和一个目标值,并返回列表中值的索引(如果它在那里),如果不存在,则返回None。
答案 0 :(得分:-1)