如何进行二进制搜索和打印我们的结果索引数组

时间:2019-03-26 13:54:04

标签: python

我的代码不起作用。我不擅长编码,很抱歉浪费您的时间。我从不擅长此事,并且试图了解如何进行线性和二进制搜索。我希望您能解决我的问题,因为这根本没有道理,如果我看起来很愚蠢,我感到抱歉。

我想打印项目在数组中的位置的结果,我不能,我该怎么做?

我创建了一个函数,使用它我可以使主要的二进制函数正常工作,但是我希望它可以打印索引。

这是我的代码:

def binary_search(array,item):
    start_point = 0
    end_point = len(array)
    mid_point = (start_point + end_point) / 2
    while mid_point != item:
        if mid_point > item:
            end_point = mid_point
        elif mid_point < item:
            start_point = mid_point
    if mid_point == item:
        print(mid_point)

binary_search([0,3,5,6,7,8],7)

2 个答案:

答案 0 :(得分:0)

Python具有内置功能,可从列表即 list.index(element)

中获取特定项目的索引
>>>k = [3,4,5,7]
>>>k.index(7)
>>>3

答案 1 :(得分:0)

列表的基本错误。 与项目比较时,应为:     array [mid_point]!=项目 最好在尝试处理算法之前先了解数据结构。