为了账号安全,请及时绑定邮箱和手机立即绑定

二进制搜索的此代码有什么问题?

二进制搜索的此代码有什么问题?

qq_遁去的一_1 2022-09-13 17:27:13
这是python二进制搜索代码,当我运行时它不起作用。# Binary Searchdef BinarySearch(*args, key, size):    low = 0    high = size - 1    while low <= high:        mid = (low + high) / 2        if key < args[mid]:            high = mid - 1        else:            if key > args[mid]:                low = mid + 1            else:                return mid + 1    return -1arraySize = 10A = [num * 2 for num in range(10)]print("Numbers in array are : ", A)searchKey = input("Enter integer search key : ")element = BinarySearch(A, searchKey, arraySize)if element != -1:    print("Found value in element : ", element)else:    print("Value not found.") 错误是这样的:类型错误:二进制搜索()缺少2个必需的仅关键字参数:“键”和“大小”那么,它有什么问题?请帮忙:)
查看完整描述

2 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

程序中有多个错误。


您必须将 *args 和 **args 放在位置和关键字参数之后。


假设您已经修改了函数定义。现在,它将数组转换为元组,该元组将按照您的 algo.it 将列表转换为列表元组也不起作用。


    def BinarySearch( key, size,*args):

          pass


    [] -> ([], )   

3.So,您只需要放置阵列部分。请参阅以下代码。


    # Binary Search


def BinarySearch(arr, key, size):

    print(args)

    low = 0

    high = size - 1

    while low <= high:

        mid = (low + high) // 2

        if key < args[mid]:

            high = mid - 1

        else:

            if key > args[mid]:

                low = mid + 1

            else:

                return mid + 1

    return -1


arraySize = 10

A = [num * 2 for num in range(10)]

print("Numbers in array are : ", A)

searchKey = input("Enter integer search key : ")

element = BinarySearch(A, int(searchKey), arraySize)

if element != -1:

    print("Found value in element : ", element)

else:

    print("Value not found.") 


查看完整回答
反对 回复 2022-09-13
?
慕神8447489

TA贡献1780条经验 获得超1个赞

更改此

element = BinarySearch(A, searchKey, arraySize)

element = BinarySearch(A, key=searchKey, size=arraySize)


查看完整回答
反对 回复 2022-09-13
  • 2 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号