2301_76986952 2023-04-27 12:21 采纳率: 90%
浏览 39
已结题

如何使用二分查找法在list2中查找n,则提示用户:“该数值在list2中不存在?

假设有2个整型数组:
list1[] = { 12, 8, 3, 5, 9, 2, 1, 0, 15, 17 };
list2[] = { 2, 3, 6, 9, 10, 12, 15, 17, 19, 27 };
首先,分2行输出这2个数组中的元素;
然后,提示用户输入要查找的整数,存放在变量n中;
接着,使用顺序查找法在list1中查找n,如果找到,输出其位置,如果没有,则提示用户:“该数值在list1中不存在”;
最后,使用二分查找法在list2中查找n,如果找到,输出其位置,如果没有,则提示用户:“该数值在list2中不存在”

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-04-27 12:38
    关注
    list1 = [12, 8, 3, 5, 9, 2, 1, 0, 15, 17]
    list2 = [2, 3, 6, 9, 10, 12, 15, 17, 19, 27]
    
    # 输出两个数组的元素
    print("list1: ", end="")
    for i in list1:
        print(i, end=" ")
    print()
    print("list2: ", end="")
    for i in list2:
        print(i, end=" ")
    print()
    
    # 提示用户输入要查找的整数
    n = int(input("请输入要查找的整数:"))
    
    # 在list1中使用顺序查找法查找n
    position = -1
    for i in range(len(list1)):
        if list1[i] == n:
            position = i
            break
    if position != -1:
        print("在list1中的位置为:", position)
    else:
        print("该数值在list1中不存在")
    
    # 在list2中使用二分查找法查找n
    left, right = 0, len(list2) - 1
    position = -1
    while left <= right:
        mid = (left + right) // 2
        if list2[mid] == n:
            position = mid
            break
        elif list2[mid] < n:
            left = mid + 1
        else:
            right = mid - 1
    if position != -1:
        print("在list2中的位置为:", position)
    else:
        print("该数值在list2中不存在")
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月5日
  • 已采纳回答 4月27日
  • 创建了问题 4月27日